Git CODEOWNERS多团队审批配置异常:为何需重复审批?
问题分析与解决方案
你的问题出在CODEOWNERS的语法逻辑上:GitHub默认把同一行里的多个所有者视为必须全部审批的关系,而不是你想要的“二选一”。
你当前的写法:
dev1/ @myorg/dev @myorg/devops
会被GitHub解读为:dev1路径的PR需要@myorg/dev 和 @myorg/devops两个群组都完成审批,这就是为什么devops审批后还要求dev群组审批的原因。
正确配置方式
要实现“任一审批即可”的逻辑,需要把每个所有者单独写成一行,对应同一个路径:
* @myorg/devops dev1/ @myorg/dev dev1/ @myorg/devops dev2/ @myorg/dev dev2/ @myorg/devops
逻辑说明
- 当同一个路径存在多行CODEOWNERS规则时,GitHub会将这些规则视为**“或”**的关系:只要其中一个列出的所有者完成审批,就满足该路径的代码所有者审核要求。
- 全局的
*规则会被更具体的dev1/dev2路径规则覆盖,所以涉及这两个文件夹的PR,只需要@myorg/dev或@myorg/devops中任意一个群组审批即可;其他路径的PR依然遵循全局规则,需要@myorg/devops审批。
内容的提问来源于stack exchange,提问作者Sergei
相关产品推荐
相关产品推荐

