Help us learn about your current experience with the documentation. Take the survey.

代码所有者

  • Tier: Premium, Ultimate
  • Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated

使用 Code Owners 功能来定义谁对项目代码库的特定部分拥有专业知识。 在仓库中定义文件和目录的所有者,以便:

  • 要求所有者批准更改。将受保护分支与 Code Owners 结合使用,要求专家在合并请求合并到受保护分支之前对其进行批准。更多信息,请参见 Code Owners 和受保护分支

  • 识别所有者。Code Owner 的名称显示在他们拥有的文件和目录上:

    UI 中显示的代码所有者

代码所有者和审批规则

将 Code Owners 与合并请求的 审批规则(无论是可选还是必需) 结合使用,以构建灵活的审批工作流:

  • 使用 Code Owners 确保质量。定义对仓库中特定路径拥有领域专业知识的用户。
  • 使用审批规则定义与特定文件路径不对应的专长领域。审批规则帮助引导合并请求创建者找到正确的审查者集合,例如前端开发人员或安全团队。

例如:

类型 名称 范围 注释
审批规则 UX 所有文件 用户体验(UX)团队成员审查项目中所有更改的用户体验。
审批规则 安全 所有文件 安全团队成员审查所有更改以发现漏洞。
代码所有者审批规则 前端:代码风格 *.css 文件 前端工程师审查 CSS 文件更改是否符合项目风格标准。
代码所有者审批规则 后端:代码审查 *.rb 文件 后端工程师审查 Ruby 文件的逻辑和代码风格。
视频介绍:Code Owners

有关谁有资格作为审批者或代码所有者批准合并请求的信息,请参见 按成员类型的审批者

代码所有者和受保护分支

为确保合并请求的更改由 CODEOWNERS 文件 中指定的代码所有者进行审查和批准,合并请求的目标分支必须是 受保护的,并且必须启用 代码所有者审批

在受保护分支上启用代码所有者审批后,以下功能可用:

实际示例

你的项目在 config/ 目录中包含敏感和重要信息。你可以:

  1. 分配该目录的所有权。为此,请设置一个 CODEOWNERS 文件。
  2. 为你的默认分支创建一个受保护分支。例如,main
  3. 在受保护分支上启用 代码所有者必需审批
  4. 可选。编辑 CODEOWNERS 文件以添加多个审批的规则。

通过此配置,更改 config/ 目录中文件并目标为 main 分支的合并请求 在合并前需要指定代码所有者的批准。

允许推送到和合并到受保护分支

允许推送和合并 的用户可以选择为其更改创建合并请求, 或将更改直接推送到分支。如果用户 跳过合并请求流程,受保护分支功能 和内置在合并请求中的代码所有者审批也会被跳过。

此权限通常授予与 自动化(内部用户) 和发布工具相关的账户。

没有 允许推送 权限的用户的所有更改都必须通过合并请求进行路由。

查看文件或目录的代码所有者

要查看文件或目录的代码所有者:

  1. 在左侧边栏,选择 搜索或转到 并找到你的项目。
  2. 选择 代码 > 仓库
  3. 转到你想要查看代码所有者的文件或目录。
  4. 可选。选择一个分支或标签。

GitLab 在页面顶部显示代码所有者。

设置代码所有者

先决条件:

  • 你必须拥有推送到默认分支或创建合并请求的权限。
  1. 在你的首选位置创建一个 CODEOWNERS 文件。
  2. 按照 CODEOWNERS 语法 在文件中定义一些规则。 一些建议:
  3. 提交你的更改,并将它们推送到 GitLab。

CODEOWNERS 文件

CODEOWNERS 文件定义了谁负责 GitLab 项目中的代码。 其目的是:

  • 为特定的文件和目录定义代码所有者。
  • 强制执行受保护分支的审批要求。
  • 在项目中传达代码所有权。

此文件确定谁应该审查和批准更改,并确保正确的 专家参与代码更改。

每个仓库使用一个 CODEOWNERS 文件。GitLab 按以下顺序检查你仓库中的这些位置。 找到的第一个 CODEOWNERS 文件将被使用,而 所有其他文件都将被忽略:

  1. 在根目录中:./CODEOWNERS
  2. docs 目录中:./docs/CODEOWNERS
  3. .gitlab 目录中:./.gitlab/CODEOWNERS

有关更多信息,请参见 CODEOWNERS 语法高级 CODEOWNERS 配置

相关主题