审核合并请求

合并请求是对 GitLab 项目中的文件进行更改的主要方法。通过 创建和提交 合并请求来提出更改。您的团队可以在合并请求上留下 评论,并提出您可以在用户界面中接受的 建议。当团队成员审核您的工作时,他们可以选择接受或拒绝更改。

要审核合并请求,您可以使用以下工具:

查看合并请求的审核状态

要查看合并请求的状态:

  1. 在左侧导航栏,选择 搜索或前往 并找到您的项目。
  2. 选择 代码 > 合并请求,并找到您的合并请求。
  3. 选择合并请求的标题以查看它。
  4. 滚动到 合并请求小部件,以查看合并请求的可合并状态和审核状态。例如,缺少必要的批准阻止了此合并请求:

    The merge request widget displays 'All required approvals must be given'.

要查看每个审核者的单独审核状态,请检查右侧边栏的合并请求。每个 审核者 显示在用户名称的右侧:

  • 用户的审核正在进行
  • 用户已批准
  • {Comment templates} 用户请求了更改,并阻止了此合并请求(如果需要,您可以绕过此阻止)

请求审核

  • 极狐GitLab 17.5 引入了增强的审核员抽屉功能,使用了名名为 reviewer_assign_drawer 的功能标志。
  • 在极狐GitLab 17.5 中为 JihuLab.com 和私有化部署版本启用。

当您完成准备工作后,就可以请求审核了。要将审核员分配给您的合并请求,请使用 /assign_reviewer @user 快速操作 在任何文本字段中,或者:

  1. 在左侧边栏,选择 搜索或前往 并找到您的项目。
  2. 选择 代码 > 合并请求,并找到您的合并请求。
  3. 选择合并请求的标题以查看它。
  4. 在右侧边栏的 审核员 部分:
    • 要按名称查找特定的审核员,选择 编辑
    • 在极狐GitLab 专业版和旗舰版本中,选择 分配 打开审核员抽屉,以查找满足审批规则的审核员。

极狐GitLab 会将合并请求添加到用户的审核请求中。

查找满足审批规则的审核员

极狐GitLab 专业版和旗舰吧会帮助您更快速地找到最合适的审核员。使用 分配审核员 抽屉来筛选审核员列表。查看合并请求中更改的文件的 代码所有者,以及满足项目审批规则的用户。

在此示例中,合并请求需要 3 个代码所有者审批,但目前还没有任何审批:

The Assign Reviewers drawer for a merge request that requires 3 Code Owner approvals, but has none. It shows one line per Code Owner rule, and one line per approval rule. You can select reviewers for each rule.

  1. 要查看可选的审批规则或代码所有者,选择 可选审批规则 () 显示它们。
  2. 在您需要的审核员类型旁,选择 编辑
    • 代码所有者 仅显示该文件类型的代码所有者。
    • 审批规则 仅显示符合该审批规则的用户。
  3. 选择您想要的审核员。(GitLab Premium 和 Ultimate 版本支持选择多个审核员。)
  4. 对每个必需的 代码所有者审批规则 项目重复此操作。
  5. 选择完审核员后,右上角选择 关闭 () 隐藏抽屉。

重新请求审核

在审核员完成他们的 合并请求审核 后,合并请求的作者可以重新请求该审核员进行新一轮审核。
要这样做,可以使用 /request_review @user 快速操作在合并请求的任何文本字段中,或者:

  1. 在左侧边栏,选择 搜索或前往 并找到您的项目。
  2. 选择 代码 > 合并请求,并找到您的合并请求。
  3. 选择合并请求的标题以查看它。
  4. 如果您已折叠合并请求中的右侧边栏,选择 展开边栏 以展开它。
  5. 审核员 部分,选择 重新请求审核 图标 () 以重新请求该审核员进行审核。

GitLab 会为审核员创建一个新的 待办事项,并向他们发送通知邮件。

开始审核

如果有人请求您审核合并请求,请按以下步骤操作:

  1. 您可以:
    • Shift + r 进入您的 审核请求 页面。
    • 在左侧边栏中选择 合并请求 () > 审核请求
  2. 查找您的合并请求,选择合并请求的标题以查看它。
  3. 阅读合并请求的描述和评论,了解合并请求的详细信息。
  4. 选择 更改 以查看提议更改的差异。要了解有关 更改 页面的更多信息,请参见 合并请求中的更改
  5. 根据需要 建议多行或单行更改。如果您选择 开始审核 而不是 立即添加评论,则您的审核评论将在您完成审核之前保持未发布状态。

  6. 在选择 开始审核 后,要添加更多评论,可以从以下地方添加:
    • 更改 标签,包含差异视图。
    • 概述 标签,并选择 添加到审核

    新线程

  7. 选择 提交您的审核 以发布所有通过 开始审核添加到审核 添加的审核评论。在您 提交审核 之前,这些评论保持未发布状态。

使用评论解决或取消解决线程

审核评论还可以解决或取消解决 可解决线程。要在回复评论时解决或取消解决线程:

  1. 在评论文本区域中写下您的评论。
  2. 选择或取消选择 解决线程
  3. 选择 立即添加评论添加到审核

待处理评论会显示有关延迟操作的信息。GitLab 在发布评论之前不会执行这些操作:

  • 线程已解决。
  • 线程保持未解决。

提交审核

提交已完成的审核,您可以:

  • 在非审核评论的文本中使用 /submit_review 快速操作
  • 选择 完成审核,然后在对话框底部选择 提交审核。 在对话框中,您可以提供 摘要评论,批准(或拒绝)合并请求,并包括快速操作:

    完成审核并添加评论

提交审核时,GitLab 会:

  • 发布您审核中的评论。
  • 向每个合并请求的可通知用户发送一封包含您审核评论的电子邮件。回复此电子邮件会在合并请求中创建一个新评论。
  • 执行您添加到审核评论中的任何快速操作。
  • 可选地,显示您是否已批准或请求更改:
    • 评论:留下通用反馈,没有明确的批准。
    • 批准:留下反馈并批准更改。
    • 请求更改:在作者处理您的反馈之前,阻止合并请求合并。

请求更改时防止合并

  • 在极狐GitLab 16.11 中引入了 带有功能标志 mr_reviewer_requests_changes,默认禁用。
  • 在极狐GitLab 17.2 中,默认为 JihuLab.com 和私有化部署版本启用。
  • 在极狐GitLab 17.3 中,已移功能标志 mr_reviewer_requests_changes

当审核员 请求更改 时,合并请求将被阻止合并。此时,合并请求的报告区域会显示消息 更改请求必须完成或解决。 要解除阻止合并请求,提出更改请求的审核员应 重新审核并批准 合并请求。

绕过更改请求

如果请求更改的用户无法重新审核或批准,另一个有权限合并合并请求的用户可以覆盖此检查:

  1. 在左侧边栏,选择 搜索或前往 并找到您的项目。
  2. 选择 代码 > 合并请求 并找到您的合并请求。
  3. 选择合并请求的标题以查看它。
  4. 在合并请求的 概览 页面,滚动到合并请求报告区域。
  5. 更改请求必须完成或解决 旁边,选择 绕过

    因用户请求更改而被阻止的合并请求

  6. 合并请求报告区域显示 谨慎合并:已添加覆盖。要查看用户绕过了哪个检查,选择 展开合并检查 () 并查找包含警告()图标的检查。在此示例中,作者绕过了 更改请求必须完成或解决

    此合并请求包含一个绕过的检查,应谨慎合并。

下载合并请求更改

作为差异文件(diff)

要将合并请求中的更改下载为差异文件(diff):

  1. 在左侧边栏,选择 搜索或前往 并找到您的项目。
  2. 选择 代码 > 合并请求
  3. 选择您的合并请求。
  4. 在右上角,选择 代码 > 普通差异

如果您知道合并请求的 URL,您也可以通过将 .diff 添加到 URL 来从命令行下载差异文件。例如,下载合并请求 000000 的差异文件:

https://gitlab.com/gitlab-org/gitlab/-/merge_requests/000000.diff

要在一行命令中下载并应用差异文件

curl "https://gitlab.com/gitlab-org/gitlab/-/merge_requests/000000.diff" | git apply

作为补丁文件

要将包含在合并请求中的更改下载为补丁文件:

  1. 在左侧边栏,选择 搜索或前往 并找到您的项目。
  2. 选择 代码 > 合并请求
  3. 选择您的合并请求。
  4. 在右上角,选择 代码 > 补丁

如果您知道合并请求的 URL,请通过将 .patch 添加到 URL 来从命令行下载补丁文件。例如,下载合并请求 000000 的补丁文件:

https://gitlab.com/gitlab-org/gitlab/-/merge_requests/000000.patch

要使用 git am 下载并应用合并请求 000000 的补丁文件

curl "https://gitlab.com/gitlab-org/gitlab/-/merge_requests/000000.patch" | git am

关联功能

合并请求与以下功能相关:

  • cherry-pick 更改: 在 GitLab UI 中,选择 樱桃挑选 以在合并的合并请求或提交中挑选更改。
  • 快进合并请求: 用于线性的 Git 历史记录,并且提供一种接受合并请求而不创建合并提交的方法。
  • 查找引入更改的合并请求: 在查看提交详细信息页面时,GitLab 会链接到包含该提交的合并请求。
  • 合并请求版本: 选择并比较合并请求差异的不同版本。
  • 解决冲突: GitLab 可以提供选项,在 GitLab UI 中解决某些合并请求的冲突。
  • 还原更改: 从任何提交的合并请求中还原更改。
  • 键盘快捷键: 使用键盘命令访问和更改合并请求的特定部分。

相关话题