【问题标题】:azure repo branch policies天蓝色回购分支政策
【发布时间】:2020-10-17 03:16:39
【问题描述】:

我花了一个下午在 azure devops 中整理了一些 repos。一切顺利。

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

{新功能}->nightly->test->master

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

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

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

【问题讨论】:

    标签: azure-devops azure-repos


    【解决方案1】:

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

    您无法控制它是否可以公关,只有人们在批准和/或合并之前需要跳过的圈子

    • 最少 # 个审阅者
    • 检查链接的工作项
    • 检查评论解析
    • 限制合并类型:也许打开它并取消选中所有框,这样当 PR 被批准时就不能合并?

    【讨论】:

      【解决方案2】:

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

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

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

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

      $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")
      }
      

      希望这会有所帮助。

      【讨论】:

      • 感谢 Leo Liu-MSFT。我的解决方案是在 yaml 管道中使用 jobs->job,条件是查看源分支。 ``` 条件:eq(variables['Build.SourceBranch'], variables.sourceBranch) ``
      • @user3067684,很高兴您解决了您的问题。既然你已经解决了,请将你的评论转换为答案吗?这可能有利于其他社区成员阅读答案,避免在已经有答案的帖子上花费大量时间。谢谢。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2020-05-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多