Tfs 拉取请求策略-生成在另一个拉取请求完成后过期。自动为其他PRs重新运行过期版本的方法?

Tfs 拉取请求策略-生成在另一个拉取请求完成后过期。自动为其他PRs重新运行过期版本的方法?,tfs,tfs-2019,Tfs,Tfs 2019,这有点类似于,但着眼于自动化方面 我们的上下文:我们有保护主分支的pull请求,每个完成的pull请求都会使所有其他pull请求的构建过期,以确保所有剩余pull请求的构建都必须重新排队,并正确构建和测试 现在我们有一些时候会遇到拉请求争用(我在看你们,sprint的结尾!),在这些时候,我们有很多拉请求打开。当我们致力于最小化数量时,它有时会发生 在PR自动完成后,是否有一个插件或某些功能可以触发所有过期的构建?有一种方法可以自动终止所有其他PR构建,所以我认为也有一种方法可以自动对它们重新排

这有点类似于,但着眼于自动化方面

我们的上下文:我们有保护主分支的pull请求,每个完成的pull请求都会使所有其他pull请求的构建过期,以确保所有剩余pull请求的构建都必须重新排队,并正确构建和测试

现在我们有一些时候会遇到拉请求争用(我在看你们,sprint的结尾!),在这些时候,我们有很多拉请求打开。当我们致力于最小化数量时,它有时会发生


在PR自动完成后,是否有一个插件或某些功能可以触发所有过期的构建?有一种方法可以自动终止所有其他PR构建,所以我认为也有一种方法可以自动对它们重新排队。我知道这可能会触发构建级联,但我希望我的PRs始终尽可能最新。

相关的REST API没有文档记录,但是您可以通过诸如或在Chrome浏览器中按F12之类的工具跟踪它,然后选择
网络

在pull request页面中,按照您的问题所述手动将生成排队

例如,在我的azure devops服务中,我得到了以下API

Post https://dev.azure.com/patricklu/_apis/Contribution/dataProviders/query/project/a72e1ef5-4921-49c5-9260-e72b7bff977d
请求机构:

{"contributionIds":["ms.vss-code-web.pull-request-detail-policy-data-provider"],"context":{"properties":{"repositoryId":"357893bf-9a1f-4ee4-95d3-c5ceda4f4abc","pullRequestId":12,"policyEvaluationIds":["bca44f9f-268f-4640-aa7e-af5253b3b11e"],"pageSource":{"contributionPaths":["VSS","VSS/Resources","q","knockout","mousetrap","mustache","react","react-dom","react-transition-group","jQueryUI","jquery","OfficeFabric","tslib","@uifabric","VSSUI","ContentRendering","ContentRendering/Resources","TFSUI","TFSUI/Resources","WidgetComponents","WidgetComponents/Resources","Charts","Charts/Resources","TFS","Notifications","Presentation/Scripts/marked","Presentation/Scripts/URI","Presentation/Scripts/punycode","Presentation/Scripts/IPv6","Presentation/Scripts/SecondLevelDomains","highcharts","highcharts/highcharts-more","highcharts/modules/accessibility","highcharts/modules/heatmap","highcharts/modules/funnel","Analytics"],"diagnostics":{"sessionId":"8277adc6-6810-4cf9-b984-10860e90c0b5","activityId":"8277adc6-6810-4cf9-b984-10860e90c0b5","bundlingEnabled":true,"cdnAvailable":true,"cdnEnabled":true,"webPlatformVersion":"M156","serviceVersion":"Dev17.M156.1 (build: AzureDevOps_M156_20190821.17)"},"navigation":{"topMostLevel":8,"area":"","currentController":"Apps","currentAction":"ContributedHub","currentParameters":"12","commandName":"Git.pullrequest","routeId":"ms.vss-code-web.pull-request-review-route","routeTemplates":["{project}/{team}/_git/{GitRepositoryName}/pullrequest/{parameters}","{project}/_git/{GitRepositoryName}/pullrequest/{parameters}","_git/{project}/pullrequest/{parameters}"],"routeValues":{"project":"GITAgile","parameters":"12","controller":"Apps","action":"ContributedHub","vctype":"git","viewname":"pull-request-review"}},"project":{"id":"a72e1ef5-4921-49c5-9260-e72b7bff977d","name":"GITAgile"},"selectedHubGroupId":"ms.vss-code-web.code-hub-group","selectedHubId":"ms.vss-code-web.pull-request-hub","url":"https://dev.azure.com/patricklu/_git/GITAgile/pullrequest/12?_a=overview"},"sourcePage":{"url":"https://dev.azure.com/patricklu/_git/GITAgile/pullrequest/12?_a=overview","routeId":"ms.vss-code-web.pull-request-review-route","routeValues":{"project":"GITAgile","parameters":"12","controller":"Apps","action":"ContributedHub","vctype":"git","viewname":"pull-request-review"}}}}}

如您所见,有一些值,例如存储库ID和请求ID。遵循这一点,您应该能够使用API为特定的拉请求重新运行一些构建


您可以使用或RESTAPI跟踪拉请求是否完成,然后使用上述API调用重新运行构建。希望这有帮助。

对请求进行良好的检查:)。对于内部部署的TFS安装,需要一些奇怪的解决方法。我真的很想知道为什么还没有人把这个特性添加到TFS中。