首页/开发/Git 与协作速查/GitLab 审批规则(approval rules)
协作与代码评审75 条

GitLab 审批规则(approval rules)

在项目设置中定义合并请求审批规则:指定审批人数、适用分支、是否重置、是否包含代码所有者,可叠加多条规则。

Git 与协作速查开发更新于 2026-10-13

审批规则是什么

GitLab 的审批规则用来规定一个合并请求在合并前需要几人批准、由谁批准。它在项目设置里维护,可以叠加多条规则,并分别指定适用的目标分支、新增提交后是否重置已有审批、是否把代码所有者纳入必审范围。审批规则是准入条件,不能代替人对改动的判断。

基本信息

配置路径项目 → Settings → Merge requests → Approval rules
常见字段审批人数、适用目标分支、新提交是否重置审批、是否允许作者批准
规则叠加多条规则需同时满足才算通过
配合机制可与 CODEOWNERS 组合,要求代码所有者审批
生效范围该项目(或指定受保护分支)内的合并请求

典型使用场景

  • 主干分支要求两人批准、普通分支一人批准,按风险分级设置
  • 涉及基础设施、支付等敏感目录的合并请求强制指定团队审批
  • 依赖升级类改动要求安全团队会签
  • 开启新提交重置审批,确保批准针对的是最终版本
  • 在高频小改动分支上放宽人数,避免流程成为交付瓶颈

典型规则组合

典型规则组合
规则一:任意目标分支,需 1 名审批人
规则二:目标为 main,需 2 名审批人
规则三:变更包含 infra/ 路径,需 SRE 组成员审批
规则四:新增提交后重置已有审批

规则字段读法

字段含义常见取值
审批人数满足该规则所需的批准数量1 / 2 / 自定义人数
适用分支规则匹配的目标分支具体分支名或通配写法
重置审批新推送是否作废已有批准开启 / 关闭
代码所有者是否要求代码所有者审批开启 / 关闭
规则越多流程越重,按风险分层更实用:高风险目录加严,日常改动保持一名审批人。审批人尽量配置成组而不是个人,避免成员转岗后合并请求无人可批。
如果关闭「新增提交重置审批」,批准可能只覆盖旧版本。想保证批准针对最终版本,建议开启重置,并同时禁止作者自我批准。

易错点

  • 分支匹配条件写错(例如写成不存在的分支名),规则看起来配了却从未生效,配置后要用测试 MR 验证
  • 关闭新提交重置审批后,批准可能只覆盖旧版本,等于放行未审过的代码
  • 允许作者自我批准会让多人审批形同虚设,需要结合分支保护一起检查
  • 审批人写成具体个人而非组,人员转岗或离职后合并请求卡住无人可批
  • 审批规则与分支保护设置相互矛盾时,会出现提交推不上去、审批又要求先推送的循环阻塞

数据来源与参考

  • GitLab Docs:Merge request approval rules
  • GitLab Docs:Merge request approvals
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌