当在VSTS中更新目标分支时,是否可以获得PR以重新启动合并?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当在VSTS中更新目标分支时,是否可以获得PR以重新启动合并?相关的知识,希望对你有一定的参考价值。

为了给出一些背景信息,我将从我想要实现的目标开始。

我有一个Web服务,从VSTS服务挂钩接收数据。服务挂钩在创建或更新PR时以及“拉出请求合并尝试”时发布数据。

我的Web服务的要点是检查PR的源分支是否与目标分支保持同步。

一切正常,当PR创建时以及源分支发生变化时(这相当于PR创建和PR分别更新)。

但是,如果在PR等待完成时更新目标分支,我希望将服务发布到此处,这可以将PR状态设置为失败,因为源分支不再是最新的。

如果我更新目标分支,目前我可以完成PR,即使我的服务已经再次发布它会说“不,你不能完成这个”。我可以手动强制它再次发布到服务,但在PR上使用“重新启动合并”,但这并不理想。重新启动合并的过程必须激活“Pull Request Merge Attempted”事件。

所以我想知道的是,如果有一种方法可以在Target分支更新时自动重试合并吗?

任何有关这方面的帮助(或者如果您有关于完成此操作的一些提示,请检查源是否与目标保持同步)将不胜感激!

谢谢

PR Top right menu

答案

目前,在将新更改推送到目标分支后,PR不会自动更新,除非您手动单击重新启动合并PR(因为还没有这样的REST API来重新启动PR的合并)。

在您发现源分支与目标分支(目标分支更新)不一致时,解决方法是放弃并反应PR,然后您将发现更新了被动PR。

放弃和反应公关,你可以参考REST API

  • 放弃公关 PATCH https://{account}.visualstudio.com/DefaultCollection/{project}/_apis/git/repositories/{repoID}/pullRequests/{PullRequestID}?api-version=3.0 应用程序/ JSON { "status": "abandoned" }
  • 反应性PR PATCH https://{account}.visualstudio.com/DefaultCollection/{project}/_apis/git/repositories/{repoID}/pullRequests/{PullRequestID}?api-version=3.0 应用程序/ JSON { "status": "active" }

以上是关于当在VSTS中更新目标分支时,是否可以获得PR以重新启动合并?的主要内容,如果未能解决你的问题,请参考以下文章

VSTS GitHub拉取请求触发器未触发

VSTS - 防止推送到 master 但允许 PR 合并

检查拉取请求是不是与目标分支保持同步

多个工件源上的 VSTS 发布触发器不关心分支规范

VSTS REST API - GIT - 分支是不是存在?

GitHub Actions:某些文件更新的自动 PR?