You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure DevOps中仅忽略「最少2个审阅者」分支策略

解决方案:分支策略例外+自动化审批精准跳过审阅者要求

核心方案

别直接绕过所有分支策略,用Azure DevOps原生的分支策略例外规则,配合服务账户自动化审批,只跳过「最少2个审阅者」的要求,其他策略(构建、测试等)正常生效。

具体操作步骤

1. 给分支策略添加审阅者例外

在目标分支的分支策略中找到「最少审阅者」规则,添加例外配置:

  • 选择「用户或组」,将你的自动化服务账户加入其中
  • 设置规则:当该服务账户批准PR时,即便未达到2个人工审阅者,也视为满足审阅者要求

2. 修正代码逻辑:先审批再完成PR

你之前直接修改PR状态和完成选项的方式不符合Azure DevOps的API规则,正确流程是先让服务账户添加自己为审阅者并完成批准,再触发PR完成操作(此时分支策略会识别服务账户的批准,同时自动执行其他策略校验)。

修正后的代码示例:

// 1. 将服务账户设为PR审阅者并完成批准
var reviewer = new IdentityRefWithVote
{
    Id = "<服务账户的ID>",
    Vote = 10 // 10代表批准,-10代表拒绝
};

await gitClient.CreatePullRequestReviewerAsync(
    reviewer,
    pullRequest.Repository.Id,
    pullRequest.PullRequestId,
    isNotificationEnabled: false);

// 2. 完成PR,不绕过任何分支策略
var completionOptions = new GitPullRequestCompletionOptions
{
    SquashMerge = true,
    BypassPolicy = false, // 关键:不要开启此选项,否则会绕过所有策略
    DeleteSourceBranch = true // 按需配置
};

await gitClient.CompletePullRequestAsync(
    completionOptions,
    pullRequest.Repository.Id,
    pullRequest.PullRequestId);

3. 前置自定义条件校验

执行上述自动化流程前,先用你已实现的API完成所有自定义条件校验:

  • 代码可正常编译
  • 所有测试用例执行通过
  • 仅CSproj文件发生变更,且版本号符合正式发布规范
    只有当所有条件满足时,才触发服务账户的审批和PR完成操作。

方案优势

  • 无需自行编写代码重复校验构建、测试等分支策略,直接复用Azure DevOps原生能力,稳定性更高
  • 仅针对「最少审阅者」规则做例外处理,保留其他所有质量关卡,符合安全合规要求
  • 完美适配你的自动化场景:可信第三方SDK小版本更新,靠自动化校验替代人工审核,提升效率

备选方案(针对旧版Azure DevOps)

如果你的Azure DevOps版本不支持审阅者例外规则,可以创建一个「自动化审批专用组」,将服务账户加入该组;然后在「最少审阅者」分支策略中,将该组设置为必需审阅者。当满足自定义条件时,让服务账户代表该组完成PR批准,同样可达到跳过人工审阅的效果。

内容的提问来源于stack exchange,提问作者Ashkan S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 13:03:28