我们有一个数据仓库类型的应用程序,因此简单的构建不足以验证拉取请求。我们有一个发布管道,可以自动触发向烟雾环境的发布。如果此部署成功,则拉取请求可以完成。
Pull Request Status API似乎是完美的。但是我无法弄清楚如何从发布版本中获取pullRequestId。
构建定义中有一个$(System.PullRequest.PullRequestId)变量,但在发布定义中没有。
我正在测试一个hacky解决方案 - 在构建阶段将新文件写入artefact目录,其中包含$(System.PullRequest.PullRequestId)。然后可以在此版本中使用。希望有一种更简单的方法。
答案 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"