Azure devops 在Azure DevOps中单击Pull Request中的complete按钮后,是否有方法获取Pull Request ID

Azure devops 在Azure DevOps中单击Pull Request中的complete按钮后,是否有方法获取Pull Request ID,azure-devops,azure-devops-rest-api,azure-devops-pipelines,Azure Devops,Azure Devops Rest Api,Azure Devops Pipelines,在创建PR之后,我正在执行一个管道流,我需要在单击“完成”按钮后获取请求ID 我正在使用$(System.PullRequest.PullRequestId)获取该值,但该值始终为空值,并给出错误输出“System.PullRequest.PullRequestId:command not found” 创建一个简单的经典管道,如下所示,需要在分支策略->状态检查中调用它。 注意:使用相同的变量$(System.PullRequest.PullRequestId)我能够在完成之前,即PR处于活

在创建PR之后,我正在执行一个管道流,我需要在单击“完成”按钮后获取请求ID

我正在使用$(System.PullRequest.PullRequestId)获取该值,但该值始终为空值,并给出错误输出“System.PullRequest.PullRequestId:command not found

创建一个简单的经典管道,如下所示,需要在分支策略->状态检查中调用它。


注意:使用相同的变量$(System.PullRequest.PullRequestId)我能够在完成之前,即PR处于活动状态时获取ID。

Ad@CodeCaster在注释中说,变量
$(System.PullRequest.PullRequestId)
仅当由于受分支策略影响的Git PR而运行生成时才会初始化

但是,您可以通过以下方式使用小PS脚本获取最后完成的PR ID:

只需将
$url
中的
master
替换为目标分支名称即可

结果:


如果使用Classic editor或将令牌添加到YAML任务中,请不要忘记启用访问令牌。

:“只有在由于受分支策略影响的Git PR而运行生成时,才会初始化此变量”Hi@Hello,问题如何?下面的答案解决了你的问题吗?如果是的话,你可以,这样它可以帮助其他社区成员谁得到同样的问题,我们可以存档这个线程。谢谢祝你今天愉快。:)您好@VitoLiu MSFT,不,它没有达到确切的目的。正如@codecaster所说,我正在基于分支策略而不是单独在单个流中运行完整的构建。使用API,我可以获得最后一次完成的PR,但我无法验证它是之前执行的PR。示例:使用两条管道流创建完整的PR。运行、验收并完成带有PRid 1234的第一条管道。单击完成基于分支策略的第二个管道运行后,现在使用API我可以获得1234,但我无法检查它是否与之前完成的相同。注意:我没有运行单个CI,它是一个流。@您好,在api响应中,上次完成的位置
0
中的PR。
$header = @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"  }
$url = "$(System.TeamFoundationCollectionUri)$(System.TeamProject)/_apis/git/repositories/$(Build.Repository.Name)/pullrequests/?searchCriteria.status=3&top=50&searchCriteria.targetRefName=refs/heads/master&api-version=6.1"
$pullRequests = Invoke-RestMethod -Uri $url -Method Get -Headers $header -ContentType application/json
Write-Host "Last PR completed to master is: $($pullRequests.value[0].pullRequestId)"