Git CODEOWNERS配置:排除指定团队对特定目录的所有权
最优实现方案
直接使用GitHub原生支持的负向所有者语法,仅需在现有team1的目录规则末尾添加排除team2的标记即可,完全不需要修改原有的全局通配符规则,也不用重构现有逻辑。
修改后的.github/CODEOWNERS内容如下:
* @mycompany/team2 /infrastructure/directory1/subdirectory1.1 @mycompany/team1 ^@mycompany/team2 /infrastructure/directory2/subdirectory2.1 @mycompany/team1 ^@mycompany/team2
规则说明
- 以
^开头加团队/用户账号的语法是GitHub CODEOWNERS原生支持的排除规则,会将对应账号从当前路径的所有者列表中移除 - CODEOWNERS规则按从上到下的顺序匹配,后面的规则会覆盖或修改前面的匹配结果,原有全局规则不需要改动
- 最终效果和预期完全一致:仓库所有目录默认所有者为team2,仅
subdirectory1.1和subdirectory2.1的所有者只有team1,team2不在这两个目录的所有者列表中
内容的提问来源于stack exchange,提问作者Dimi
相关产品推荐
相关产品推荐

