azure repo 分支策略

azure repo branch policies

我整个下午都在整理 azure devops 中的一些回购协议。一切顺利。

我无法回答的一个问题是限制/保护分支。我正在处理一个包含工作流程分支的现有项目:

{新特性}->nightly->test->master

目前这是手动完成的,并且有一些疲惫的开发人员在周五下午匆匆忙忙地增加流程并杀死生产(主分支)的故事

我已经制定了一些政策,例如审阅者的数量和 运行 单元测试的验证。

问题是,使用 Azure 存储库我可以限制哪些分支可以 PR 到另一个分支以及如何?

项目 >> 设置 >> 存储库 >> Select 回购 >> 策略 >> Select 分支

你无法控制它是否可以被 PR'd 进入,只有人们在它被批准之前需要跳过的箍 and/or 合并

  • 最少 # 位评论者
  • 检查链接的工作项
  • 检查评论解决方案
  • Limit Merge Types: 也许打开这个并取消选中 all 框,这样当 PR 被批准时它不能被合并?

The question is, with Azure repos can i limit what branch can be PR'ed into another and how?

恐怕没有这样一个开箱即用的分支策略,你可以限制哪些分支可以被 PR 到另一个。

作为解决方法,如果触发构建验证的分支不是我们预期的分支,我们可以在构建验证管道中添加一个任务以使管道失败,我们设置构建失败。这样其他人就无法将非预期的分支合并到目标分支中。

作为测试,我创建了一个内联 powershell 任务来限制可以 PR 进入的分支:

$branch = $Env:System_PullRequest_SourceBranch
Write-Host "Current branch is $branch"
if ($branch -eq "refs/heads/Dev1")
{
  Write-Host ("The source branch is expected branch.")
}
elseif ($branch -ne "refs/heads/Dev1")
{
  Write-Host ("##vso[task.complete result=Failed;]DONE")
}

希望对您有所帮助。

如果有人发现这个,我的解决方案.... 使用条件和“if”

condition: eq(variables['Build.SourceBranch'], variables.sourceBranch)