代码所有者

  • Tier: 专业版,旗舰版
  • Offering: JihuLab.com, 私有化部署

使用 Code Owners 功能定义谁是项目代码库特定部分的专家。定义存储库中文件和目录的所有者,以便:

  1. 要求所有者批准变更。 将受保护的分支与 Code Owners 结合使用,要求专家在合并请求合并到受保护分支之前批准。有关更多信息,请参见Code Owners 和受保护的分支

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

    Code Owners displayed in UI

Code Owners 和批准规则#

将 Code Owners 与合并请求的批准规则(可选或必需)结合使用,以构建灵活的批准工作流程:

  1. 使用 Code Owners 来确保质量。定义在存储库中特定路径具有领域专长的用户。
  2. 使用 批准规则 来定义不对应于存储库中特定文件路径的专长领域。批准规则帮助合并请求创建者找到正确的审阅者,例如前端开发人员或安全团队。

例如:

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

Code Owners 和受保护的分支#

为了确保合并请求的更改由指定在 CODEOWNERS 文件中的 Code Owners 审查和批准,合并请求的目标分支必须是受保护的,并且必须启用Code Owner 批准

启用受保护分支上的 Code Owner 批准时,可以使用以下功能:

  1. 要求 Code Owners 批准
  2. 要求多个 Code Owners 的批准
  3. 可选的 Code Owners 批准

实用示例#

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

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

通过这种配置,更改 config/ 目录中文件并将目标设为 main 分支的合并请求需要指定的 Code Owners 的批准才能合并。

查看文件或目录的 Code Owners#

要查看文件或目录的 Code Owners:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 代码 > 存储库
  3. 转到您想查看 Code Owners 的文件或目录。
  4. 可选。选择一个分支或标签。

极狐GitLab 会在页面顶部显示 Code Owners。

设置 Code Owners#

先决条件:

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

CODEOWNERS 文件#

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

  1. 为特定文件和目录定义 Code Owners。
  2. 强制执行受保护分支的批准要求。
  3. 在项目中传达代码所有权。

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

每个存储库使用单个 CODEOWNERS 文件。极狐GitLab 按以下顺序检查存储库中的这些位置。找到的第一个 CODEOWNERS 文件将被使用,其他文件将被忽略:

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

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

允许推送#

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

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

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