为了给出一些背景信息,我将从我想要实现的目标开始。
我有一个Web服务,从VSTS服务挂钩接收数据。服务挂钩在创建或更新PR时以及“拉出请求合并尝试”时发布数据。
我的Web服务的要点是检查PR的源分支是否与目标分支保持同步。
一切正常,当PR创建时以及源分支发生变化时(这相当于PR创建和PR分别更新)。
但是,如果在PR等待完成时更新目标分支,我希望将服务发布到此处,这可以将PR状态设置为失败,因为源分支不再是最新的。
如果我更新目标分支,目前我可以完成PR,即使我的服务已经再次发布它会说“不,你不能完成这个”。我可以手动强制它再次发布到服务,但在PR上使用“重新启动合并”,但这并不理想。重新启动合并的过程必须激活“Pull Request Merge Attempted”事件。
所以我想知道的是,如果有一种方法可以在Target分支更新时自动重试合并吗?
任何有关这方面的帮助(或者如果您有关于完成此操作的一些提示,请检查源是否与目标保持同步)将不胜感激!
谢谢
目前,在将新更改推送到目标分支后,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"
}
PATCH https://{account}.visualstudio.com/DefaultCollection/{project}/_apis/git/repositories/{repoID}/pullRequests/{PullRequestID}?api-version=3.0
应用程序/ JSON
{
"status": "active"
}