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

时间:2018-06-06 10:01:26

标签: azure-devops pull-request azure-pipelines-release-pipeline azure-devops-rest-api

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

Pull Request Status API似乎是完美的。但是我无法弄清楚如何从发布版本中获取pullRequestId。

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

我正在测试一个hacky解决方案 - 在构建阶段将新文件写入artefact目录,其中包含$(System.PullRequest.PullRequestId)。然后可以在此版本中使用。希望有一种更简单的方法。

1 个答案:

答案 0 :(得分:0)

似乎构建由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"