我想只有特定的分支合并到特定的分支。一些示例:我想做master分支只接受来自test分支的拉取请求,test分支只接受来自development分支的拉取请求。如何在TFS/Git上执行此限制?我们有一些关于审阅者和构建验证的政策。
master
test
development
ufj5ltwl1#
如果您有分支策略,则可以采取变通方法来实现目标:在构建定义(您在构建验证中指定的)中,添加一个PowerShell任务,该任务检查拉取请求的源分支。当源分支不是您想要的分支时,构建将失败。例如,在下面的脚本中,如果源分支不是test,则构建将失败,因此将其添加到master分支构建验证中:
$sourceBranch = "$(System.PullRequest.SourceBranch)" if($sourceBranch -ne "test") { exit 1 }
polkgigr2#
我通过第三方Web钩子集成解决了我的问题。我开发了nodejs expressapp,并将其托管在不同的服务器上,我创建了集成规则,该规则在拉取请求创建时触发。我在我的节点应用程序中检查源和目标分支。之后,我将此集成添加到合并策略中。很酷,很简单。谢谢大家。
2条答案
按热度按时间ufj5ltwl1#
如果您有分支策略,则可以采取变通方法来实现目标:
在构建定义(您在构建验证中指定的)中,添加一个PowerShell任务,该任务检查拉取请求的源分支。当源分支不是您想要的分支时,构建将失败。
例如,在下面的脚本中,如果源分支不是
test
,则构建将失败,因此将其添加到master
分支构建验证中:polkgigr2#
我通过第三方Web钩子集成解决了我的问题。
我开发了nodejs expressapp,并将其托管在不同的服务器上,我创建了集成规则,该规则在拉取请求创建时触发。我在我的节点应用程序中检查源和目标分支。
之后,我将此集成添加到合并策略中。
很酷,很简单。谢谢大家。