如何在GitHub上设置多个指定的强制PR审批审阅人
GitHub 强制指定特定人员全部审批方可合并PR的配置方案
首先明确你之前尝试的两个方案的问题:
- 单独开启「Require review from Code Owners」默认仅要求同组Code Owner中任意一人审批即可,无法满足多个人必须同时审批的要求
- 将PR所需总审批人数设置为与CODEOWNERS配置人数一致的方案不可行:总审批数统计的是所有有仓库写权限的审阅人的审批,非强制审阅人(比如你提到的C、D、E、F)的审批也会被计入总数,会出现非指定人员凑够审批数就能合并的问题
方案一:免费版即可用,基于CODEOWNERS + 分支保护规则实现
核心逻辑是将需要强制审批的人员拆分为独立的CODEOWNERS条目,配合分支保护规则实现单人单条强制校验,步骤如下:
- 在仓库的
.github/目录(根目录、docs/目录也可)下创建CODEOWNERS文件,按需要覆盖的路径配置强制审批人,必须将每个需要强制审批的人员单独写为一行规则,示例:
# 以下两行配置表示所有PR必须同时获得A、B的审批 * @A * @B # 注意:C、D、E、F这类非强制审批的审阅人不要写入CODEOWNERS文件,PR创建后手动将其添加为审阅人即可,他们的审批不做强制要求
如果你只需要对特定路径下的变更要求A、B审批,把上面的路径通配符
*换成对应路径即可,比如/src/core/表示仅核心源码目录的变更需要两人审批
- 配置对应分支的保护规则:
- 进入仓库
Settings->Branches,选择需要保护的分支(如main、master)编辑规则 - 勾选「Require a pull request before merging」
- 勾选「Require review from Code Owners」
- 「Require approvals」的审批数可按需设置,建议设置为2即可,该数值不影响Code Owner的强制校验逻辑
- 进入仓库
- 规则生效逻辑:PR创建后会自动拉取A、B作为审阅人,必须两人都提交审批通过,才能满足合并条件,C、D、E、F的审批不会替代A、B的强制审批要求。
方案二:GitHub Team/企业版可用,可视化配置强制审阅人
如果你的仓库使用付费的GitHub Team或企业版,可直接使用内置的强制审阅人功能,不需要编写CODEOWNERS文件:
- 进入分支保护规则配置页
- 找到「Required reviewers」配置项,直接添加A、B为指定强制审阅人,可按需配置规则生效的路径范围
- 保存规则后,所有匹配规则的PR会自动要求A、B全部审批通过才可合并,配置逻辑更直观。
注意事项
- GitHub默认不允许PR提交人审批自己的PR,如果A或B是PR提交人,需要提前配置对应的备用审批人规则
- 规则配置完成后建议提交测试PR验证:分别测试仅C/D审批、仅A审批、A+B审批三种场景,确认合并权限符合预期。
内容的提问来源于stack exchange,提问作者DevopitionBro
相关产品推荐
相关产品推荐

