建议更改
审核者可以在合并请求差异行中使用 Markdown 语法建议代码更改。 合并请求作者(或具有适当角色的其他用户)可以应用来自 UI 的任何或所有建议。应用建议会向合并请求添加提交,提交作者为提出更改建议的用户。
创建建议
- 在左侧菜单中,选择 搜索或前往 并找到你的项目。
- 选择 代码 > 合并请求 并找到你的合并请求。
- 在次级菜单中,选择 更改。
- 找到你想要更改的代码行。
- 若要选择单行,悬停在行号上并选择 添加此行评论 ()。
- 若要选择多行:
- 悬停在行号上并选择 添加此行评论 ():
- 选择并拖动以包括所有所需的行。欲了解更多内容,请参见 多行建议。
- 悬停在行号上并选择 添加此行评论 ():
- 在评论工具栏中,选择 插入建议 ()。 GitLab 将在评论中插入一个预填充的代码块,如下所示:
```suggestion:-0+0
The content of the line you selected is shown here.
```
- 编辑预填充的代码块以添加你的建议。
- 若要立即添加评论,选择 立即添加评论,或使用快捷键:
- macOS: Shift + Command + Enter
- 其他操作系统: Shift + Control + Enter
- 若要在完成 审核 之前不发布评论,选择 开始审核,或使用快捷键:
- macOS: Command + Enter
- 其他操作系统: Control + Enter
多行建议
- 多行建议在极狐GitLab 17.7 中进行了更改,支持在建议中包含代码块时渲染。
当你审查合并请求的 diff 时,你可以通过以下方式提议多行(最多 200 行)的更改:
- 如 创建建议 中描述,选择并拖动。GitLab 会为你创建一个建议块。
- 选择单行,然后手动编辑建议块中的范围偏移。
建议块第一行中的范围偏移描述了相对于所选行的行号。偏移量指定了你的建议打算替换的行。例如,这个建议覆盖了评论行上下各 2 行:
```suggestion:-2+2
## Prevent approval by author
By default, the author of a merge request cannot approve it. To change this setting:
```
当应用时,建议会替换从评论行上方 2 行到下方 2 行的内容:
GitLab 将多行建议限制为评论行上方 100 行和下方 100 行。这允许每个建议最多更改 201 行。
多行评论在评论正文上方显示该评论的行号:
使用富文本编辑器
- 在极狐GitLab 16.1 中引入,带有名为
content_editor_on_issues
的功能标志。默认禁用。- 在极狐GitLab 16.2 中,GitLab.com 和自管理版启用了此功能。 -极狐GitLab 16.5 中移除了功能标志
content_editor_on_issues
。
当你插入建议时,可以使用所见即所得的 富文本编辑器 来上下移动源文件的行号。
应用建议
先决条件:
- 您必须是合并请求的作者,或者至少拥有该项目的开发者角色。
要直接从合并请求中应用建议的更改:
- 在左侧边栏中,选择 搜索或跳转 并找到您的项目。
- 选择 代码 > 合并请求 并找到您的合并请求。
- 找到包含您要应用的建议的评论。
- 要单独应用建议,选择 应用建议。
- 要在一个提交中应用多个建议,选择 添加建议到批次。
- 可选:提供自定义提交信息以描述您的更改。如果未提供自定义消息,则使用默认的提交消息。
- 选择 应用。
应用建议后,极狐GitLab 会:
- 将建议标记为 已应用。
- 解决评论线程。
- 创建一个包含更改的新提交。
- (如果用户具有开发者角色)将建议的更改直接推送到合并请求的分支中的代码库。
配置应用建议的提交消息
极狐GitLab 在应用建议时使用默认的提交消息,但您可以更改它。此消息支持占位符。例如,默认消息 Apply %{suggestions_count} suggestion(s) to %{files_count} file(s)
如果您将三个建议应用到两个不同的文件时,会显示为:
Apply 3 suggestion(s) to 2 file(s)
来自分支的合并请求使用目标项目中定义的模板。为满足项目需求,可以自定义这些消息并包括其他占位符变量。
先决条件:
- 您必须具有维护者角色。
要执行此操作:
- 在左侧边栏中,选择 搜索或跳转 并找到您的项目。
- 选择 设置 > 合并请求。
- 向下滚动到 合并建议,并根据需要修改文本。 查看 支持的变量 获取您可以在此消息中使用的占位符列表。
支持的变量
应用建议的提交消息模板支持以下变量:
变量 | 描述 | 输出示例 |
---|---|---|
%{branch_name} |
应用建议的分支名称。 | my-feature-branch |
%{files_count} |
应用建议的文件数量。 | 2 |
%{file_paths} |
应用建议的文件路径。路径由逗号分隔。 | docs/index.md, docs/about.md |
%{project_path} |
项目路径。 | my-group/my-project |
%{project_name} |
项目的可读名称。 | My Project |
%{suggestions_count} |
应用的建议数量。 | 3 |
%{username} |
应用建议的用户的用户名。 | user_1 |
%{user_full_name} |
应用建议的用户的全名。 | User 1 |
%{co_authored_by} |
建议作者的姓名和电子邮件,以 Co-authored-by Git 提交尾部格式呈现。 |
Co-authored-by: Zane Doe <zdoe@example.com> Co-authored-by: Blake Smith <bsmith@example.com>
|
例如,要自定义提交消息为 Addresses user_1's review
,可以将自定义文本设置为
Addresses %{username}'s review
。
批量应用建议
先决条件:
- 您必须拥有可以提交到源分支的项目角色。
为了减少提交到分支的次数,可以将多个建议合并为一个提交进行应用。
- 在左侧边栏中,选择 搜索或跳转 并找到您的项目。
- 选择 代码 > 合并请求 并找到您的合并请求。
- 对于每个您想应用的建议,选择 将建议添加到批量。
- 可选:若要移除某个建议,选择 从批量中移除。
-
在添加完所需的建议后,选择 应用建议。
如果您应用了一个包含多个作者更改的批量建议,最终的提交会以您为作者。如果您配置了项目以 防止添加提交的用户进行审批,则您将不再是该合并请求的合适审批人。 - 可选:为 批量建议 提供自定义提交消息,以描述您的更改。如果没有指定,则使用默认的提交消息。