将拉取请求描述复制到 Azure Devops 上的工作项评论

Copy pull request description to work item comments on Azure Devops

当 PR 获得批准后,消息 "Completing Pull Request 123 and the associated work items." 添加到相关工作项的评论区。

有什么办法可以附加PR描述吗?

我在评论中附加了 zapier webhook,我不会在另一个应用程序中收到 PR 消息。

When PR is approved, there is message "Completing Pull Request 123 and the associated work items." added to associated work item's comments area.

根据此描述,我猜您正试图在 Pull Request is completing 时将 PR 描述附加到工作项评论中,对吧?

恐怕没有这种开箱即用的功能可以让您直接使用。但是您可以考虑在构建管道中使用 运行 powershell 脚本和其余 api 来实现这样的目标。


我的建议逻辑是:

第一步:准备环境。

创建一个构建管道,并将其 trigger type 设为 Continues Integration(CI)。仅此而已,拉取请求完成可以触发此管道处理,然后进行下一个工作。

第2步:获取PR完成节点id,然后调用此方法获取对应的Pull request ID PRs query api.

对于CI运行的构建,有一个环境变量Build.SourceVersion可以代表由CI生成的合并节点id拉取请求完成。

POST https://dev.azure.com/{org}/{project name}/_apis/git/repositories/{repo name}/PullRequestQuery?api-version=6.0-preview.1

{
  "queries": [
    {
      "type": 1,
      "items": [
        "$(Build.SourceVersion)" // Put the $(Build.SourceVersion) value here.
      ]
    }
  ]
}

然后,在其响应正文中,您会看到有一个参数 pullRequestId 指向与此提交 ID 关联的 Pull 请求。

步骤 3Get detailed PR description and work item id 通过使用 pull request id 我们在步骤 2 中得到。

Get https://dev.azure.com/{org}/{project name}/_apis/git/repositories/{repo name}/pullrequests/{pull request id}?includeWorkItemRefs=true&api-version=5.1

把我们从step 2得到的pull reqeust id放到这个api中,然后你可以看到description的内容连同它的响应中的work item id正文:

步骤4: Add此描述内容到相应的工作项评论区。

POST https://dev.azure.com/{org}/{project name}/_apis/wit/workItems/{WorkItem Id}?api-version=5.1-preview.3

[
  {
      "op": "add",
      "path": "/fields/System.History",
      "Value": $(description) // put the description here
  }
]

正如我首先提到的,确保此管道由 CI 触发。然后,一旦 Pull 请求 完成 ,您就会将 description 内容添加到 WIT comment 中。