代码所有者
- Tier: 专业版,旗舰版
- Offering: JihuLab.com, 私有化部署
使用 Code Owners 功能定义谁是项目代码库特定部分的专家。定义存储库中文件和目录的所有者,以便:
-
要求所有者批准变更。 将受保护的分支与 Code Owners 结合使用,要求专家在合并请求合并到受保护分支之前批准。有关更多信息,请参见Code Owners 和受保护的分支。
-
识别所有者。 Code Owner 的名字显示在他们拥有的文件和目录上:

Code Owners 和批准规则
将 Code Owners 与合并请求的批准规则(可选或必需)结合使用,以构建灵活的批准工作流程:
- 使用 Code Owners 来确保质量。定义在存储库中特定路径具有领域专长的用户。
- 使用 批准规则 来定义不对应于存储库中特定文件路径的专长领域。批准规则帮助合并请求创建者找到正确的审阅者,例如前端开发人员或安全团队。
例如:
| 类型 | 名称 | 范围 | 注释 |
|---|---|---|---|
| 批准规则 | UX | 所有文件 | 用户体验 (UX) 团队成员审查项目中所做的所有更改的用户体验。 |
| 批准规则 | 安全 | 所有文件 | 安全团队成员审查所有更改以查找漏洞。 |
| Code Owner 批准规则 | 前端:代码风格 | *.css 文件 | 前端工程师审查 CSS 文件更改以确保符合项目风格标准。 |
| Code Owner 批准规则 | 后端:代码审查 | *.rb 文件 | 后端工程师审查 Ruby 文件的逻辑和代码风格。 |
Code Owners 和受保护的分支
为了确保合并请求的更改由指定在 CODEOWNERS 文件中的 Code Owners 审查和批准,合并请求的目标分支必须是受保护的,并且必须启用Code Owner 批准。
启用受保护分支上的 Code Owner 批准时,可以使用以下功能:
实用示例
您的项目在 config/ 目录中包含敏感和重要信息。您可以:
- 分配目录的所有权。为此,请设置一个 CODEOWNERS 文件。
- 为您的默认分支创建一个受保护的分支。例如,main。
- 在受保护的分支上启用 Code Owners 的必需批准。
- 可选。编辑 CODEOWNERS 文件以添加多个批准的规则。
通过这种配置,更改 config/ 目录中文件并将目标设为 main 分支的合并请求需要指定的 Code Owners 的批准才能合并。
查看文件或目录的 Code Owners
要查看文件或目录的 Code Owners:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 选择 代码 > 存储库。
- 转到您想查看 Code Owners 的文件或目录。
- 可选。选择一个分支或标签。
极狐GitLab 会在页面顶部显示 Code Owners。
设置 Code Owners
先决条件:
- 您必须有权限推送到默认分支或创建合并请求。
- 在您首选的位置创建一个 CODEOWNERS 文件。
- 根据 CODEOWNERS 语法在文件中定义一些规则。一些建议:
- 配置所有合格审批人批准规则。
- 在受保护的分支上要求 Code Owner 批准。
- 提交您的更改,并将其推送到极狐GitLab。
CODEOWNERS 文件
CODEOWNERS 文件定义了谁是极狐GitLab 项目中代码的负责人。其目的在于:
- 为特定文件和目录定义 Code Owners。
- 强制执行受保护分支的批准要求。
- 在项目中传达代码所有权。
此文件确定谁应审查和批准更改,并确保合适的专家参与代码更改。
每个存储库使用单个 CODEOWNERS 文件。极狐GitLab 按以下顺序检查存储库中的这些位置。找到的第一个 CODEOWNERS 文件将被使用,其他文件将被忽略:
- 在根目录中:./CODEOWNERS。
- 在 docs 目录中:./docs/CODEOWNERS。
- 在 .gitlab 目录中:./.gitlab/CODEOWNERS。
有关更多信息,请参见 CODEOWNERS 语法和高级 CODEOWNERS 配置。
允许推送
被 允许推送 的用户可以选择为其更改创建合并请求,或将更改直接推送到分支。如果用户跳过合并请求流程,则也会跳过合并请求中内置的受保护分支功能和 Code Owner 批准。
此权限通常授予与自动化(内部用户)和发布工具相关联的账户。
所有不具有 允许推送 权限的用户的更改必须通过合并请求进行。