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

合并请求评审

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

合并请求评审流程确保主题专家在合并前评审您的提议更改。评审者向合并请求添加评审评论,并建议更改,作者可以直接从 GitLab UI 应用这些更改。

评审者可以使用以下任何工具来评审合并请求:

批准是几种合并检查之一,确保您的合并请求仅在真正准备好时才合并。根据您的项目配置,评审者还可以通过设置请求更改来阻止合并请求合并。

GitLab Premium 和 Ultimate 提供一个分配评审者抽屉,其中包含更多信息,帮助您找到满足批准规则的评审者

此合并请求需要四次批准,其中三个批准要求未满足。

通过遵循定义的评审流程,每位评审者决定接受还是拒绝合并请求。右侧边栏显示评审者列表,以及(如果他们遵循评审流程)他们的评审状态:

处于各种评审状态的评审者示例。

  • dash-circle 评审尚未开始。
  • status_running 评审进行中。
  • check-circle 已评审并批准。
  • comment-lines 已评审,请求了更改,并阻止了此合并请求,直到更改完成。此阻止可以被绕过

概览请参见合并请求评审

查找要评审的合并请求

您的合并请求主页显示您正在进行的合并请求,以及等待您评审的合并请求。您需要评审的合并请求在请求评审类别中。要查看所有需要您注意的合并请求,请使用以下方法之一:

  • Shift + m 键盘快捷键
  • 在左侧边栏,选择合并请求 merge-request )。
  • 在左侧边栏,选择搜索或跳转,然后从下拉列表中选择我正在处理的合并请求

查看合并请求的评审状态

执行以下操作:

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

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

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

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

    合并请求小组件显示"必须给予所有必需的批准"。

请求评审

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

  1. 在左侧边栏,选择搜索或跳转并找到您的项目。
  2. 选择代码 > 合并请求并找到您的合并请求。
  3. 选择合并请求的标题以查看它。
  4. 按名称查找评审者:在右侧边栏的评审者部分,选择编辑
  5. 在 GitLab Premium 和 Ultimate 中查找满足批准规则的评审者:
    1. 在右侧边栏的评审者部分,选择分配以打开分配评审者抽屉。
    2. 对于每个批准规则,选择编辑以找到满足该批准规则的评审者。

GitLab 将合并请求添加到用户的评审请求中。

查找满足批准规则的评审者

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

GitLab Premium 和 Ultimate 帮助您更快地为合并请求找到最佳评审者。使用分配评审者抽屉来筛选评审者列表。查看合并请求中已更改文件的代码所有者,以及满足您项目批准规则的用户。

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

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

要在合并请求中分配符合条件的批准者:

  1. 评审者部分,选择分配
  2. 要查看可选批准规则或代码所有者,选择可选批准规则 chevron-lg-up )以显示它们。
  3. 在您需要的评审者类型旁边,选择编辑
    • 代码所有者仅显示该文件类型的代码所有者。
    • 批准规则仅显示满足该批准规则的用户。
  4. 选择您想要的评审者。(GitLab Premium 和 Ultimate 允许您选择多个评审者。)
  5. 对每个必需的代码所有者批准规则项目重复此操作。
  6. 当您选择了评审者后,在右上角选择关闭 close )以隐藏分配评审者抽屉。

重新请求评审

在评审者完成其合并请求评审后,合并请求的作者可以请求评审者进行新的评审。为此,请在合并请求的任何文本字段中使用 /request_review @user 快速操作,或者:

  1. 在左侧边栏,选择搜索或跳转并找到您的项目。
  2. 选择代码 > 合并请求并找到您的合并请求。
  3. 选择合并请求的标题以查看它。
  4. 如果您在合并请求中折叠了右侧边栏,选择 chevron-double-lg-left 展开边栏以展开它。
  5. 评审者部分,选择评审者名称旁边的重新请求评审图标( redo )。

GitLab 为评审者创建一个新的待办事项,并向他们发送通知电子邮件。

开始评审

在评审合并请求时,请遵循评审流程,而不是单独留下评论。当您选择开始评审时,右侧边栏的评审者部分会将您的状态从等待评审 dash-circle )更新为评审者已开始评审 comment-dots

要开始评审合并请求:

  1. 选择以下任一方式:

    • Shift + r 转到您的评审请求页面。
    • 在左侧边栏,选择合并请求 merge-request > 评审请求
  2. 找到您的合并请求,并选择合并请求的标题以查看它。

  3. 阅读合并请求描述和评论以了解合并请求。

  4. 选择更改以查看提议更改的差异。要了解更多关于更改页面的信息,请参见合并请求中的更改

  5. 根据需要建议多行或单行更改。当准备保存您的第一条评审评论时,选择开始评审以:

    • 在右侧边栏中将您的状态更新为评审者已开始评审 comment-dots )。

    • 保存您的评审评论,但保持未发布状态,如下所示:

      显示为"待处理"的未发布多行评审评论。

    如果您选择立即添加评论而不是开始评审,GitLab 会立即发布您的评论。

  6. 继续在更改选项卡或概览选项卡上编写评审评论。选择添加到评审会使它们保持未发布状态,直到您提交评审:

    新线程

接下来,提交您的评审。

通过评论解决或重新打开线程

评审评论也可以解决或重新打开可解决的线程。在回复评论时解决或重新打开线程:

  1. 在评论文本区域中,编写您的评论。
  2. 选择或清除解决线程重新打开线程
  3. 选择立即添加评论添加到评审

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

  • check-circle-filled 解决线程。
  • check-circle 线程保持打开状态。

提交评审

当您提交评审时,GitLab 会执行以下操作:

  • 发布您评审中的评论。
  • 向合并请求的每个可通知用户发送一封电子邮件,附上您的评审评论。回复此电子邮件会在合并请求上创建新评论。
  • 执行您添加到评审评论中的任何快速操作。
  • 显示您评审的结果。
  1. 在右上角,选择您的评审以显示您的评审详情:

    显示进行中评审的评审抽屉。它包含单行评审评论和跨越两行代码的评论。

  2. 查看您的待处理评论。根据需要进行编辑。

  3. 选择您评审的结果。

    • 批准:留下反馈并批准更改。
    • 评论:留下一般性反馈,没有明确的批准或更改请求。
    • 请求更改:阻止合并请求合并,直到作者处理您的反馈。
  4. 可选。编写您的评审摘要。GitLab Premium 和 Ultimate 用户可以选择添加摘要 tanuki-ai )为您创建摘要。包含您希望执行的任何快速操作。

您还可以在非评审评论的文本中使用 /submit_review 快速操作

丢弃您的待处理评审

当您丢弃评审时,您的未发布评论将被删除,且无法恢复。为此:

  1. 在右上角,选择您的评审以显示您的评审详情:

    显示进行中评审的评审抽屉。它包含单行评审评论和跨越两行代码的评论。

  2. 选择丢弃评审

请求更改时阻止合并

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

评审者请求更改会阻止合并请求合并。发生这种情况时,合并请求报告区域显示消息更改请求必须由请求用户批准。要取消阻止合并请求,请求更改的评审者应重新评审并批准合并请求。

移除更改请求

如果您之前请求了更改,可以移除您的更改请求。如果以下两项都为真,您可能需要这样做:

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

要在不提交新评审的情况下移除您的更改请求:

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

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

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

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

  5. 更改请求必须由请求用户批准旁边,选择移除

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

绕过更改请求

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

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

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

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

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

  5. 更改请求必须由请求用户批准旁边,选择绕过

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

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

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

下载合并请求更改

您可以将合并请求的更改下载为 diff 或 patch 文件。有关更多信息示例,请参见下载合并请求更改

相关功能

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

  • 挑选更改: 在 GitLab UI 中,在已合并的合并请求或提交中选择挑选来挑选它。
  • 比较更改: 查看和下载合并请求中包含的更改差异。
  • 快速合并合并请求: 实现线性 Git 历史记录,并接受合并请求而不创建合并提交的方法
  • 查找引入更改的合并请求: 查看提交详情页面时,GitLab 链接到包含该提交的合并请求。
  • 合并请求版本: 选择和比较合并请求差异的不同版本
  • 解决冲突: GitLab 可以提供在 GitLab UI 中解决某些合并请求冲突的选项。
  • 还原更改: 从合并请求中的任何提交还原更改。
  • 键盘快捷键: 使用键盘命令访问和更改合并请求的特定部分。
  • 价值流分析:跟踪关键合并请求步骤(如 reviewedapproved),以确定您的团队在软件开发生命周期中花费最多时间的地方。这些信息有助于发现可操作的见解,以优化组和项目的合并请求工作流程,并提高开发人员生产力。阅读更多关于我们如何通过价值流分析减少 MR 评审时间

相关主题