如何创建 ServiceNow 更改请求作为 TFS 2018 版本中的一个步骤

How to create a ServiceNow Change Request as a step in TFS 2018 Release

我正在尝试创建一个 ServiceNow 变更请求作为我发布中的步骤之一。我正在尝试 Agentless Phase step (Invoke Rest API: Post).

我在网上找到一篇文章,建议为 ServiceNow 创建一个通用端点。我在失败的步骤中尝试过,我确定我没有正确设置它。

2019-11-12T12:55:28.8833838Z POST https://xyzhelpdesk.service-now.com/api/now/table/change_request 响应代码:0 响应:处理请求时遇到错误。

Exception: {"error":{"message":"Exception while reading request","detail":"Cannot decode: java.io.StringReader@90f857"},"status":"failure"} Exception Message: The remote server returned an error: (400) Bad Request. (type WebException)

端点定义了用户名和密码,但我认为在步骤的设置中我可能需要 Header 部分中的更多信息。

我可以通过 Powershell 脚本创建 CR,我想我可以使用它,但不确定正确的方法。

基本上我想创建一个 ServiceNow CR 作为部署过程的一部分。然后有一个 TFS 插件门控步骤,它将检查 CR 上的状态,当它获得批准时,流程将继续进行。

谁有例子?

谢谢

其实有一个内置的扩展--ServiceNow Change Management微软提供的几乎可以满足你的需要。

它包括:

  • 在变更管理之前保持管道的发布门 处理更改请求的信号实现。 您可以创建一个 每个部署的新变更请求或使用现有变更 请求。
  • 在部署期间更新变更请求的无代理任务 过程。它通常用作阶段中的最后一个任务。

但是,此扩展仅适用于 Azure DevOps Services 和 Azure DevOps Server 2019 Update 1 以上版本。无法在 tfs2018 上使用。您可以考虑将 TFS 升级到最新的 Azure DevOps 版本。

对于 TFS 2018,建议您使用 powershell 脚本来处理此问题。它能够使用 ServiceNow 和 Azure DevOps Rest API。您还可以查看精彩的文章博客(类似于 TFS):

Integrating VSTS Release Management with ServiceNow using Deployment Gate for Change Management

Implement an Azure DevOps Release Gate to ServiceNow