如何在GitHub中为不同仓库配置来自不同团队的不同数量PR审核人员
GitHub PR 审核人员分配规则配置方案
你只需要按仓库独立配置CODEOWNERS文件与分支保护规则,即可同时满足三类仓库的不同审批要求,具体操作如下:
1. 专属仓库(RepoA、RepoB)配置
两个业务专属仓库单独配置各自的团队作为唯一代码所有者:
- RepoA根目录新建
CODEOWNERS文件,内容为:* @TeamA - 进入RepoA的「Settings → Branches → 分支保护规则」,针对主分支开启如下配置:
- 开启「合并前必须创建PR」
- 「Required approvals(所需审批数)」设置为
2 - 勾选「需要代码所有者(Code Owners)的审批」
- RepoB参照RepoA配置即可,仅需将
CODEOWNERS内容替换为* @TeamB
完成上述配置后,RepoA的PR只会要求TeamA成员审批,RepoB的PR只会要求TeamB成员审批,且都满足最低2个审批的要求。
2. 公共仓库(RepoCommon)配置
公共仓库同时指定两个团队为代码所有者,配合分支保护规则要求双团队各出1名审批人:
- RepoCommon根目录新建
CODEOWNERS文件,内容为:* @TeamA @TeamB - 进入RepoCommon的分支保护规则配置:
- 开启「合并前必须创建PR」
- 「所需审批数」设置为
2 - 勾选「需要代码所有者的审批」,同时将「代码所有者所需审批数」设置为
2,并列在CODEOWNERS中的多个团队会默认要求每个团队至少提供1个审批,刚好满足1名TeamA成员+1名TeamB成员的审批要求。
3. 可选:自动分配规则优化
如果开启了GitHub自动分配审核人功能,可在对应仓库的「Settings → Code review assignment」中单独调整分配逻辑,避免出现分配过多审核人的问题:
- RepoA、RepoB:设置为从对应代码所有者团队中随机分配2人
- RepoCommon:设置为从每个代码所有者团队中各分配1人,总分配人数为2
你之前配置冲突的核心原因是给所有仓库套用了同一套CODEOWNERS与审批数规则,CODEOWNERS本身是仓库级独立配置文件,分支保护规则也支持按仓库单独设置,拆分配置后即可完全匹配你的需求。
内容的提问来源于stack exchange,提问作者Robin Macharg
相关产品推荐
相关产品推荐

