审核合并请求
合并请求是对 GitLab 项目中的文件进行更改的主要方法。通过 创建和提交 合并请求来提出更改。您的团队可以在合并请求上留下 评论,并提出您可以在用户界面中接受的 建议。当团队成员审核您的工作时,他们可以选择接受或拒绝更改。
要审核合并请求,您可以使用以下工具:
- 极狐GitLab 界面。
- 如果您已配置 Visual Studio Code 的 GitLab Workflow 扩展,可以使用 Visual Studio Code。
- 如果您已配置 GitLab CLI,可以使用终端窗口。
查看合并请求的审核状态
要查看合并请求的状态:
- 在左侧导航栏,选择 搜索或前往 并找到您的项目。
- 选择 代码 > 合并请求,并找到您的合并请求。
- 选择合并请求的标题以查看它。
-
滚动到 合并请求小部件,以查看合并请求的可合并状态和审核状态。例如,缺少必要的批准阻止了此合并请求:
要查看每个审核者的单独审核状态,请检查右侧边栏的合并请求。每个 审核者 显示在用户名称的右侧:
- 用户的审核正在进行
- 用户已批准
- {Comment templates} 用户请求了更改,并阻止了此合并请求(如果需要,您可以绕过此阻止)
请求审核
- 极狐GitLab 17.5 引入了增强的审核员抽屉功能,使用了名名为
reviewer_assign_drawer
的功能标志。- 在极狐GitLab 17.5 中为 JihuLab.com 和私有化部署版本启用。
当您完成准备工作后,就可以请求审核了。要将审核员分配给您的合并请求,请使用 /assign_reviewer @user 快速操作 在任何文本字段中,或者:
- 在左侧边栏,选择 搜索或前往 并找到您的项目。
- 选择 代码 > 合并请求,并找到您的合并请求。
- 选择合并请求的标题以查看它。
- 在右侧边栏的 审核员 部分:
- 要按名称查找特定的审核员,选择 编辑。
- 在极狐GitLab 专业版和旗舰版本中,选择 分配 打开审核员抽屉,以查找满足审批规则的审核员。
极狐GitLab 会将合并请求添加到用户的审核请求中。
查找满足审批规则的审核员
极狐GitLab 专业版和旗舰吧会帮助您更快速地找到最合适的审核员。使用 分配审核员 抽屉来筛选审核员列表。查看合并请求中更改的文件的 代码所有者,以及满足项目审批规则的用户。
在此示例中,合并请求需要 3 个代码所有者审批,但目前还没有任何审批:
- 要查看可选的审批规则或代码所有者,选择 可选审批规则 () 显示它们。
- 在您需要的审核员类型旁,选择 编辑:
- 代码所有者 仅显示该文件类型的代码所有者。
- 审批规则 仅显示符合该审批规则的用户。
- 选择您想要的审核员。(GitLab Premium 和 Ultimate 版本支持选择多个审核员。)
- 对每个必需的 代码所有者 和 审批规则 项目重复此操作。
- 选择完审核员后,右上角选择 关闭 () 隐藏抽屉。
重新请求审核
在审核员完成他们的 合并请求审核 后,合并请求的作者可以重新请求该审核员进行新一轮审核。
要这样做,可以使用 /request_review @user 快速操作在合并请求的任何文本字段中,或者:
- 在左侧边栏,选择 搜索或前往 并找到您的项目。
- 选择 代码 > 合并请求,并找到您的合并请求。
- 选择合并请求的标题以查看它。
- 如果您已折叠合并请求中的右侧边栏,选择 展开边栏 以展开它。
- 在 审核员 部分,选择 重新请求审核 图标 () 以重新请求该审核员进行审核。
GitLab 会为审核员创建一个新的 待办事项,并向他们发送通知邮件。
开始审核
如果有人请求您审核合并请求,请按以下步骤操作:
- 您可以:
- 按 Shift + r 进入您的 审核请求 页面。
- 在左侧边栏中选择 合并请求 () > 审核请求。
- 查找您的合并请求,选择合并请求的标题以查看它。
- 阅读合并请求的描述和评论,了解合并请求的详细信息。
- 选择 更改 以查看提议更改的差异。要了解有关 更改 页面的更多信息,请参见 合并请求中的更改。
-
根据需要 建议多行或单行更改。如果您选择 开始审核 而不是 立即添加评论,则您的审核评论将在您完成审核之前保持未发布状态。
- 在选择 开始审核 后,要添加更多评论,可以从以下地方添加:
- 更改 标签,包含差异视图。
- 概述 标签,并选择 添加到审核:
- 选择 提交您的审核 以发布所有通过 开始审核 或 添加到审核 添加的审核评论。在您 提交审核 之前,这些评论保持未发布状态。
使用评论解决或取消解决线程
审核评论还可以解决或取消解决 可解决线程。要在回复评论时解决或取消解决线程:
- 在评论文本区域中写下您的评论。
- 选择或取消选择 解决线程。
- 选择 立即添加评论 或 添加到审核。
待处理评论会显示有关延迟操作的信息。GitLab 在发布评论之前不会执行这些操作:
- 线程已解决。
- 线程保持未解决。
提交审核
提交已完成的审核,您可以:
- 在非审核评论的文本中使用
/submit_review
快速操作。 -
选择 完成审核,然后在对话框底部选择 提交审核。 在对话框中,您可以提供 摘要评论,批准(或拒绝)合并请求,并包括快速操作:
提交审核时,GitLab 会:
- 发布您审核中的评论。
- 向每个合并请求的可通知用户发送一封包含您审核评论的电子邮件。回复此电子邮件会在合并请求中创建一个新评论。
- 执行您添加到审核评论中的任何快速操作。
- 可选地,显示您是否已批准或请求更改:
- 评论:留下通用反馈,没有明确的批准。
- 批准:留下反馈并批准更改。
- 请求更改:在作者处理您的反馈之前,阻止合并请求合并。
请求更改时防止合并
- 在极狐GitLab 16.11 中引入了 带有功能标志
mr_reviewer_requests_changes
,默认禁用。- 在极狐GitLab 17.2 中,默认为 JihuLab.com 和私有化部署版本启用。
- 在极狐GitLab 17.3 中,已移功能标志
mr_reviewer_requests_changes
。
当审核员 请求更改 时,合并请求将被阻止合并。此时,合并请求的报告区域会显示消息 更改请求必须完成或解决。 要解除阻止合并请求,提出更改请求的审核员应 重新审核并批准 合并请求。
绕过更改请求
如果请求更改的用户无法重新审核或批准,另一个有权限合并合并请求的用户可以覆盖此检查:
- 在左侧边栏,选择 搜索或前往 并找到您的项目。
- 选择 代码 > 合并请求 并找到您的合并请求。
- 选择合并请求的标题以查看它。
- 在合并请求的 概览 页面,滚动到合并请求报告区域。
-
在 更改请求必须完成或解决 旁边,选择 绕过:
-
合并请求报告区域显示
谨慎合并:已添加覆盖
。要查看用户绕过了哪个检查,选择 展开合并检查 () 并查找包含警告()图标的检查。在此示例中,作者绕过了 更改请求必须完成或解决:
下载合并请求更改
作为差异文件(diff)
要将合并请求中的更改下载为差异文件(diff):
- 在左侧边栏,选择 搜索或前往 并找到您的项目。
- 选择 代码 > 合并请求。
- 选择您的合并请求。
- 在右上角,选择 代码 > 普通差异。
如果您知道合并请求的 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
作为补丁文件
要将包含在合并请求中的更改下载为补丁文件:
- 在左侧边栏,选择 搜索或前往 并找到您的项目。
- 选择 代码 > 合并请求。
- 选择您的合并请求。
- 在右上角,选择 代码 > 补丁。
如果您知道合并请求的 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 中解决某些合并请求的冲突。
- 还原更改: 从任何提交的合并请求中还原更改。
- 键盘快捷键: 使用键盘命令访问和更改合并请求的特定部分。