Git Azure DevOps:如何停止可能破坏主分支的签入?

Git Azure DevOps:如何停止可能破坏主分支的签入?,git,azure-devops,azure-pipelines,azure-devops-pipelines,Git,Azure Devops,Azure Pipelines,Azure Devops Pipelines,使用分支策略,我已经对拉请求启用了生成验证。现在,每当我创建一个拉请求时,我都可以看到一个构建被触发,并且基于构建的状态,我可以完成/保持拉请求。到这里都很好 现在考虑一个2个并行的请求请求场景 PR1:正在进行中,并通过生成验证获得了绿色生成。允许审核人完成此PR PR2也在进行中,它有一些更改,在PR1更改中可能会有少数测试用例失败。PR2构建验证构建为绿色,该PR2已批准、完成并合并到主版本中 现在,PR1被批准(因为它之前得到了一个绿色构建)并完成并合并到master中。一旦PR1更改合

使用分支策略,我已经对拉请求启用了生成验证。现在,每当我创建一个拉请求时,我都可以看到一个构建被触发,并且基于构建的状态,我可以完成/保持拉请求。到这里都很好

现在考虑一个2个并行的请求请求场景 PR1:正在进行中,并通过生成验证获得了绿色生成。允许审核人完成此PR

PR2也在进行中,它有一些更改,在PR1更改中可能会有少数测试用例失败。PR2构建验证构建为绿色,该PR2已批准、完成并合并到主版本中

现在,PR1被批准(因为它之前得到了一个绿色构建)并完成并合并到master中。一旦PR1更改合并到master,master现在就是一个断开的分支


如何避免这种情况?当PR更改在主控中实际合并时,如何触发门控签入/预提交生成?

当PR更改在主控中实际合并时,没有门控签入/预提交生成,但您可以轻松避免这些情况

在生成验证(在分支策略中)中,只需在“生成过期期”中进行标记-在更新
主版
时立即标记:


更新分支名称时立即执行:此选项在更新受保护的分支时,将pull请求中的生成策略状态设置为失败。重新查询生成以刷新生成状态。此设置确保即使受保护的分支发生更改,也能成功生成拉请求中的更改。此选项最适合于具有重要分支且更改量较低的团队。在繁忙的开发分支中工作的团队可能会发现,每次更新受保护的分支时,等待构建完成都会造成中断。

作为一种解决方法,您可以为pipleline1设置
批准和检查,并通过rest api检查PR2的状态。如果PR2的状态未
完成
,pipeline1将不会开始运行,则无法完成PR1的生成验证,并且在PR2完成之前无法合并PR1

在Pipeline1中添加一个环境,该环境包含check:Invoke Rest API to

环境:管道->环境->批准和检查->调用RESTAPI


有关详细信息,请参阅这里的链接。

谢谢。这将大大缩小错误窗口,但仍然不是100%无错误。在一个大的开发团队中,这也是一件令人烦恼的事情。没有得到你的最新信息,变通方法对你有帮助吗?或者如果你有任何问题,请在这里分享。