首页/开发/Git 与协作速查/CODEOWNERS 语法与位置
协作与代码评审75 条

CODEOWNERS 语法与位置

CODEOWNERS 文件按路径模式声明负责人:每行「模式 + 所有者」,用 ! 排除路径,后出现的规则优先;GitHub 读取 .github/、根目录或 docs/ 中的该文件。

Git 与协作速查开发更新于 2026-10-13

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 验证自动请求是否落到正确的人

易错点

  • 文件放在非默认分支不生效,且被排除路径仍需有人兜底,容易漏评审
  • 团队名写错时规则整行被忽略,配置后用测试 PR 验证是否自动请求到人
  • 多条规则顺序写反会导致具体路径被默认规则覆盖,按「宽到窄」排列
  • 把所有人都列成所有者等于没有负责人,反而让评审责任分散
  • 规则变更后不回归验证,失效往往是静默的,等到漏评审才发现

数据来源与参考

  • GitHub Docs:About code owners(CODEOWNERS 语法)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌