合并请求审核

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

极狐GitLab的合并请求是对项目文件进行更改的主要方法。创建并提交一个合并请求以提议更改。您的团队可以在合并请求中留下评论,并提供您可以从用户界面接受的建议。当队友审核您的工作时,他们可以选择接受或拒绝。

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

有关概述,请参阅合并请求审核

查找需要审核的合并请求#

需要您审核的合并请求位于合并请求主页审核请求类别中。要在主页上查看所有合并请求,请使用 Shift + m 键盘快捷键,或者:

  1. 在左侧边栏中,选择 合并请求 图标。

或者:

  1. 在左侧边栏中,选择 搜索或前往
  2. 从下拉列表中,选择 合并请求

查看合并请求的审核状态#

要执行此操作:

  1. 在左侧边栏中,选择 搜索或前往 并找到您的项目。

  2. 选择 代码 > 合并请求 并找到您的合并请求。

  3. 选择合并请求的标题以查看它。

  4. 滚动到合并请求小部件以查看合并请求的可合并性和批准状态。例如,缺乏所需的批准阻止了此合并请求:

    合并请求小部件显示“必须给予所有必要的批准”。

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

  • 正在等待此用户的审核。
  • 用户的审核正在进行中。
  • 已被此用户批准。
  • 用户已请求更改,并阻止了此合并请求。(如有需要,您可以绕过此阻止。)

请求审核#

History
    • 增强的审阅者抽屉在极狐GitLab 17.5 中引入,使用名为 reviewer_assign_drawer功能标志`。
    • 在极狐GitLab 17.5 中,在 JihuLab.com 和私有化部署上启用。
    • 在极狐GitLab 17.8 中删除了功能标志 reviewer_assign_drawer

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

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

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

查找满足批准规则的审阅者#

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

极狐GitLab专业版和旗舰版帮助您更快地找到合并请求的最佳审阅者。使用 分配审阅者 抽屉过滤审阅者列表。查看合并请求中更改文件的代码所有者,以及满足项目批准规则的用户。

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

合并请求的分配审阅者抽屉需要 3 个代码所有者批准,但目前没有。它显示每个代码所有者规则一行,每个批准规则一行。您可以为每个规则选择审阅者。

  1. 要查看可选的批准规则或代码所有者,请选择 可选批准规则 () 以显示它们。
  2. 在您需要的审阅者类型旁边,选择 编辑
    • 代码所有者 仅显示该文件类型的代码所有者。
    • 批准规则 仅显示满足该批准规则的用户。
  3. 选择您想要的审阅者。(极狐GitLab专业版和旗舰版允许您选择多个审阅者。)
  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会:

  • 发布审核中的评论。
  • 向合并请求的每个可通知用户发送一封电子邮件,并附上您的审核评论。回复此电子邮件会在合并请求中创建新的评论。
  • 执行您在审核评论中添加的任何快速操作。
  • 可选的。显示您是否也批准或请求更改:
    • 评论:提供一般反馈而不显式批准。
    • 批准:提供反馈并批准更改。
    • 请求更改:阻止合并请求合并,直到作者解决您的反馈。

请求更改时阻止合并#

  • Tier: 专业版,旗舰版
  • Offering: JihuLab.com,私有化部署
History
    • 在极狐GitLab 16.11 中引入,使用名为 mr_reviewer_requests_changes功能标志。默认禁用。
    • 在极狐GitLab 17.2 中,在 JihuLab.com 和私有化部署上启用。
    • 在极狐GitLab 17.3 中删除功能标志。

审阅者请求更改会阻止合并请求合并。当这种情况发生时,合并请求报告区域显示消息必须完成或解决更改请求。要解除对合并请求的阻止,请请求更改的审阅者应重新审核并批准合并请求。

删除更改请求#

History
    • 在极狐GitLab 17.8 中引入。

如果您之前请求了更改,您可以删除更改请求。如果同时满足以下条件,您可能需要这样做:

  • 您无法再批准合并请求。
  • 您想取消更改请求,但不想提交新审核。

要在不提交新审核的情况下删除更改请求:

  1. 在左侧边栏中,选择 搜索或前往 并找到您的项目。

  2. 选择 代码 > 合并请求 并找到您的合并请求。

  3. 选择合并请求的标题以查看它。

  4. 在合并请求 概览 中,滚动到合并请求报告区域。

  5. 必须完成或解决更改请求 旁边,选择 删除

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

绕过更改请求#

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

  1. 在左侧边栏中,选择 搜索或前往 并找到您的项目。

  2. 选择 代码 > 合并请求 并找到您的合并请求。

  3. 选择合并请求的标题以查看它。

  4. 在合并请求 概览 中,滚动到合并请求报告区域。

  5. 必须完成或解决更改请求 旁边,选择 绕过

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

  6. 合并报告区域显示 合并时要小心:已添加覆盖。要查看用户绕过了哪个检查,请选择 展开合并检查 (

    ) 并找到包含警告 () 图标的检查。在此示例中,作者绕过了 必须完成或解决更改请求

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

下载合并请求更改#

作为差异#

要将合并请求中包含的更改下载为差异:

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

如果您知道合并请求的 URL,也可以通过在 URL 后附加 .diff 从命令行下载差异。此示例下载合并请求 000000 的差异:

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

要在一行 CLI 命令中下载并应用差异:

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

作为补丁文件#

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

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

如果您知道合并请求的 URL,也可以通过在 URL 后附加 .patch 从命令行下载补丁。此示例下载合并请求 000000 的补丁文件:

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

要在一行 CLI 命令中使用 git am 下载并应用补丁:

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

相关功能#

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

  1. 挑选更改:在极狐GitLab UI 中,选择已合并的合并请求或提交中的 挑选 以挑选它。
  2. 快速合并请求:用于线性 Git 历史和一种接受合并请求而不创建合并提交的方法。
  3. 查找引入更改的合并请求:在查看提交详细信息页面时,极狐GitLab会链接到包含该提交的合并请求。
  4. 合并请求版本:选择并比较合并请求差异的不同版本。
  5. 解决冲突:极狐GitLab可以在极狐GitLab UI 中提供解决某些合并请求冲突的选项。
  6. 撤销更改:撤销合并请求中任何提交的更改。
  7. 键盘快捷键:使用键盘命令访问和更改合并请求的特定部分。
  8. 价值流分析:跟踪关键的合并请求步骤(如 reviewedapproved),以识别软件开发生命周期中花费时间最多的地方。此信息有助于发现可操作的见解,以优化群组和项目的合并请求工作流,并提高开发人员的整体生产力。
  1. 合并方法
  2. 草稿笔记 API%