合并请求评审
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
合并请求评审流程确保主题专家在合并前评审您的提议更改。评审者向合并请求添加评审评论,并建议更改,作者可以直接从 GitLab UI 应用这些更改。
评审者可以使用以下任何工具来评审合并请求:
- GitLab 界面。
- Visual Studio Code,配合 VS Code 的 GitLab Workflow 扩展。
- 终端窗口,配合 GitLab CLI。
批准是几种合并检查之一,确保您的合并请求仅在真正准备好时才合并。根据您的项目配置,评审者还可以通过设置请求更改来阻止合并请求合并。
GitLab Premium 和 Ultimate 提供一个分配评审者抽屉,其中包含更多信息,帮助您找到满足批准规则的评审者:
通过遵循定义的评审流程,每位评审者决定接受还是拒绝合并请求。右侧边栏显示评审者列表,以及(如果他们遵循评审流程)他们的评审状态:
概览请参见合并请求评审。
查找要评审的合并请求
您的合并请求主页显示您正在进行的合并请求,以及等待您评审的合并请求。您需要评审的合并请求在请求评审类别中。要查看所有需要您注意的合并请求,请使用以下方法之一:
- 按 Shift + m 键盘快捷键。
- 在左侧边栏,选择合并请求( )。
- 在左侧边栏,选择搜索或跳转,然后从下拉列表中选择我正在处理的合并请求。
查看合并请求的评审状态
执行以下操作:
-
在左侧边栏,选择搜索或跳转并找到您的项目。
-
选择代码 > 合并请求并找到您的合并请求。
-
选择合并请求的标题以查看它。
-
滚动到合并请求小组件以查看合并请求的可合并性和批准状态。例如,缺少所需批准会阻止此合并请求:
请求评审
当您完成更改准备后,是时候请求评审了。要将评审者分配给您的合并请求,请在任何文本字段中使用 /assign_reviewer @user 快速操作,或者:
- 在左侧边栏,选择搜索或跳转并找到您的项目。
- 选择代码 > 合并请求并找到您的合并请求。
- 选择合并请求的标题以查看它。
- 按名称查找评审者:在右侧边栏的评审者部分,选择编辑。
- 在 GitLab Premium 和 Ultimate 中查找满足批准规则的评审者:
- 在右侧边栏的评审者部分,选择分配以打开分配评审者抽屉。
- 对于每个批准规则,选择编辑以找到满足该批准规则的评审者。
GitLab 将合并请求添加到用户的评审请求中。
查找满足批准规则的评审者
- Tier: Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
GitLab Premium 和 Ultimate 帮助您更快地为合并请求找到最佳评审者。使用分配评审者抽屉来筛选评审者列表。查看合并请求中已更改文件的代码所有者,以及满足您项目批准规则的用户。
在此示例中,合并请求需要 3 个代码所有者批准,但目前还没有:
要在合并请求中分配符合条件的批准者:
- 在评审者部分,选择分配。
- 要查看可选批准规则或代码所有者,选择可选批准规则( )以显示它们。
- 在您需要的评审者类型旁边,选择编辑:
- 代码所有者仅显示该文件类型的代码所有者。
- 批准规则仅显示满足该批准规则的用户。
- 选择您想要的评审者。(GitLab Premium 和 Ultimate 允许您选择多个评审者。)
- 对每个必需的代码所有者和批准规则项目重复此操作。
- 当您选择了评审者后,在右上角选择关闭( )以隐藏分配评审者抽屉。
重新请求评审
在评审者完成其合并请求评审后,合并请求的作者可以请求评审者进行新的评审。为此,请在合并请求的任何文本字段中使用 /request_review @user 快速操作,或者:
- 在左侧边栏,选择搜索或跳转并找到您的项目。
- 选择代码 > 合并请求并找到您的合并请求。
- 选择合并请求的标题以查看它。
- 如果您在合并请求中折叠了右侧边栏,选择 展开边栏以展开它。
- 在评审者部分,选择评审者名称旁边的重新请求评审图标( )。
GitLab 为评审者创建一个新的待办事项,并向他们发送通知电子邮件。
开始评审
在评审合并请求时,请遵循评审流程,而不是单独留下评论。当您选择开始评审时,右侧边栏的评审者部分会将您的状态从等待评审( )更新为评审者已开始评审( )
要开始评审合并请求:
-
选择以下任一方式:
- 按 Shift + r 转到您的评审请求页面。
- 在左侧边栏,选择合并请求( )> 评审请求。
-
找到您的合并请求,并选择合并请求的标题以查看它。
-
阅读合并请求描述和评论以了解合并请求。
-
选择更改以查看提议更改的差异。要了解更多关于更改页面的信息,请参见合并请求中的更改。
-
根据需要建议多行或单行更改。当准备保存您的第一条评审评论时,选择开始评审以:
如果您选择立即添加评论而不是开始评审,GitLab 会立即发布您的评论。
-
继续在更改选项卡或概览选项卡上编写评审评论。选择添加到评审会使它们保持未发布状态,直到您提交评审:
接下来,提交您的评审。
通过评论解决或重新打开线程
评审评论也可以解决或重新打开可解决的线程。在回复评论时解决或重新打开线程:
- 在评论文本区域中,编写您的评论。
- 选择或清除解决线程或重新打开线程。
- 选择立即添加评论或添加到评审。
待处理评论显示有关延迟操作的信息。GitLab 在您发布评论之前不会执行这些操作:
- 解决线程。
- 线程保持打开状态。
提交评审
当您提交评审时,GitLab 会执行以下操作:
- 发布您评审中的评论。
- 向合并请求的每个可通知用户发送一封电子邮件,附上您的评审评论。回复此电子邮件会在合并请求上创建新评论。
- 执行您添加到评审评论中的任何快速操作。
- 显示您评审的结果。
-
在右上角,选择您的评审以显示您的评审详情:
-
查看您的待处理评论。根据需要进行编辑。
-
选择您评审的结果。
- 批准:留下反馈并批准更改。
- 评论:留下一般性反馈,没有明确的批准或更改请求。
- 请求更改:阻止合并请求合并,直到作者处理您的反馈。
-
可选。编写您的评审摘要。GitLab Premium 和 Ultimate 用户可以选择添加摘要( )为您创建摘要。包含您希望执行的任何快速操作。
您还可以在非评审评论的文本中使用 /submit_review 快速操作。
丢弃您的待处理评审
当您丢弃评审时,您的未发布评论将被删除,且无法恢复。为此:
请求更改时阻止合并
- Tier: Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
评审者请求更改会阻止合并请求合并。发生这种情况时,合并请求报告区域显示消息更改请求必须由请求用户批准。要取消阻止合并请求,请求更改的评审者应重新评审并批准合并请求。
移除更改请求
如果您之前请求了更改,可以移除您的更改请求。如果以下两项都为真,您可能需要这样做:
- 您无法再批准合并请求。
- 您想取消您的更改请求,但不想提交新评审。
要在不提交新评审的情况下移除您的更改请求:
-
在左侧边栏,选择搜索或跳转并找到您的项目。
-
选择代码 > 合并请求并找到您的合并请求。
-
选择合并请求的标题以查看它。
-
在合并请求概览中,滚动到合并请求报告区域。
-
在更改请求必须由请求用户批准旁边,选择移除:
绕过更改请求
如果请求更改的用户无法重新评审或批准,其他有权合并合并请求的用户可以覆盖此检查:
-
在左侧边栏,选择搜索或跳转并找到您的项目。
-
选择代码 > 合并请求并找到您的合并请求。
-
选择合并请求的标题以查看它。
-
在合并请求概览中,滚动到合并请求报告区域。
-
在更改请求必须由请求用户批准旁边,选择绕过:
-
合并报告区域显示
谨慎合并:已添加覆盖。要查看用户绕过了哪个检查,选择展开合并检查( )并找到包含警告( )图标的检查。在此示例中,作者绕过了更改请求必须由请求用户批准:
下载合并请求更改
您可以将合并请求的更改下载为 diff 或 patch 文件。有关更多信息示例,请参见下载合并请求更改。
相关功能
合并请求与以下功能相关:
- 挑选更改: 在 GitLab UI 中,在已合并的合并请求或提交中选择挑选来挑选它。
- 比较更改: 查看和下载合并请求中包含的更改差异。
- 快速合并合并请求: 实现线性 Git 历史记录,并接受合并请求而不创建合并提交的方法
- 查找引入更改的合并请求: 查看提交详情页面时,GitLab 链接到包含该提交的合并请求。
- 合并请求版本: 选择和比较合并请求差异的不同版本
- 解决冲突: GitLab 可以提供在 GitLab UI 中解决某些合并请求冲突的选项。
- 还原更改: 从合并请求中的任何提交还原更改。
- 键盘快捷键: 使用键盘命令访问和更改合并请求的特定部分。
- 价值流分析:跟踪关键合并请求步骤(如
reviewed和approved),以确定您的团队在软件开发生命周期中花费最多时间的地方。这些信息有助于发现可操作的见解,以优化组和项目的合并请求工作流程,并提高开发人员生产力。阅读更多关于我们如何通过价值流分析减少 MR 评审时间。