如何从成功发布中创建 VSTS 拉取请求状态?

How to create a VSTS pull request status from a successful release?

我们有一个数据仓库类型的应用程序,因此简单的构建不足以验证拉取请求。我们有一个发布管道,可以自动触发向烟雾环境的发布。如果此部署成功,则可以完成拉取请求。

看来 Pull Request Status API 非常适合这个。但是我不知道如何从发布中获取 pullRequestId。

构建定义中有一个 $(System.PullRequest.PullRequestId) 变量,但发布定义中没有。

我目前正在测试一个 hacky 解决方案 - 在构建阶段将一个新文件写入包含 $(System.PullRequest.PullRequestId) 的 artefact 目录。然后可用于发布。希望有更简单的方法。

似乎构建是由 PR 验证触发的,而发布是由构建工件触发的。然后您可以 从预定义变量 $(Release.Artifacts.vs2017.SourceBranch).

中获取拉取请求 ID

由于构建是为了 PR 验证而触发的,所以源分支格式将是:

refs/pull/{PullRequestId}/merge

发布期间,您可以通过$(Release.Artifacts.vs2017.SourceBranch)获取源码分支。然后将字符串按 / 拆分,您将获得拉取请求 ID。下面是一个示例(变量 $prid 用于拉取请求 ID):

$t="$(Release.Artifacts.vs2017.SourceBranch)"
$pr=$t -split '/'
$prid=$pr[2]
echo "the pull request id is $prid"