CODEOWNERS 语法与位置是什么
CODEOWNERS 文件按路径模式声明负责人:每行写「模式 + 所有者」,所有者可以是个人或团队;路径前加感叹号表示反选排除。GitHub 会按固定顺序查找这份文件(.github/ 目录、仓库根目录、docs/ 目录),取到第一处即停止,因此放错位置等于没配。匹配到规则的改动会自动请求对应负责人评审,是让评审不漏人的常用机制。
基本信息
| 查找顺序 | .github/CODEOWNERS → 根目录 CODEOWNERS → docs/CODEOWNERS,取到一处即停止 |
|---|---|
| 语法 | <模式> @用户或@团队,可用 ! 反选 |
| 生效 | 匹配到的路径自动请求对应负责人评审 |
| 团队写法 | GitHub 中写作 @组织名/团队名 |
| 平台 | GitHub 支持;GitLab 用审批规则实现类似效果 |
典型使用场景
- 核心模块指定专人把关,避免改动无人负责
- 基础设施与部署配置交给平台团队评审
- 数据库变更文件自动请求对应负责人
- 新人改到敏感目录时能自动拉上维护者
- 需要按目录划分责任边界时统一登记
- 规则调整后验证是否真的自动请求到了人
文件示例
文件示例
# 默认负责人
* @org/platform-team
# 目录与文件模式
/src/api/ @org/backend
*.sql @org/dba
/infra/ @org/sre
# 排除测试夹具
/tests/ @org/qa
!/tests/fixtures/语法要点
| 写法 | 含义 |
|---|---|
| * | 默认匹配全部路径 |
| /dir/ | 匹配该目录下的内容 |
| *.ext | 按后缀匹配文件 |
| !path | 排除该路径,交给后续规则 |
模式规则按顺序生效:后出现的行会覆盖先前的行,默认规则建议写在最上方,具体规则往下排。
文件放在非默认分支上不生效,规则生效依赖默认分支上的版本,配置完成后用一次测试 PR 验证。
配置评审责任的三步
- 按目录与文件类型梳理责任归属,先写默认规则
- 把核心模块与敏感路径逐条列成具体规则
- 用一次测试 PR 验证自动请求是否落到正确的人