建议更改

审核者可以在合并请求差异行中使用 Markdown 语法建议代码更改。 合并请求作者(或具有适当角色的其他用户)可以应用来自 UI 的任何或所有建议。应用建议会向合并请求添加提交,提交作者为提出更改建议的用户。

创建建议

  1. 在左侧菜单中,选择 搜索或前往 并找到你的项目。
  2. 选择 代码 > 合并请求 并找到你的合并请求。
  3. 在次级菜单中,选择 更改
  4. 找到你想要更改的代码行。
    • 若要选择单行,悬停在行号上并选择 添加此行评论 ( )。
    • 若要选择多行:
      1. 悬停在行号上并选择 添加此行评论 ( ): 对任何 diff 文件行添加评论
      2. 选择并拖动以包括所有所需的行。欲了解更多内容,请参见 多行建议
  5. 在评论工具栏中,选择 插入建议 ( )。 GitLab 将在评论中插入一个预填充的代码块,如下所示:
   ```suggestion:-0+0
   The content of the line you selected is shown here.
   ```
  1. 编辑预填充的代码块以添加你的建议。
  2. 若要立即添加评论,选择 立即添加评论,或使用快捷键:
    • macOS: Shift + Command + Enter
    • 其他操作系统: Shift + Control + Enter
  3. 若要在完成 审核 之前不发布评论,选择 开始审核,或使用快捷键:
    • 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

当你插入建议时,可以使用所见即所得的 富文本编辑器 来上下移动源文件的行号。

应用建议

先决条件:

  • 您必须是合并请求的作者,或者至少拥有该项目的开发者角色。

要直接从合并请求中应用建议的更改:

  1. 在左侧边栏中,选择 搜索或跳转 并找到您的项目。
  2. 选择 代码 > 合并请求 并找到您的合并请求。
  3. 找到包含您要应用的建议的评论。
    • 要单独应用建议,选择 应用建议
    • 要在一个提交中应用多个建议,选择 添加建议到批次
  4. 可选:提供自定义提交信息以描述您的更改。如果未提供自定义消息,则使用默认的提交消息。
  5. 选择 应用

应用建议后,极狐GitLab 会:

  • 将建议标记为 已应用
  • 解决评论线程。
  • 创建一个包含更改的新提交。
  • (如果用户具有开发者角色)将建议的更改直接推送到合并请求的分支中的代码库。

配置应用建议的提交消息

极狐GitLab 在应用建议时使用默认的提交消息,但您可以更改它。此消息支持占位符。例如,默认消息 Apply %{suggestions_count} suggestion(s) to %{files_count} file(s) 如果您将三个建议应用到两个不同的文件时,会显示为:

Apply 3 suggestion(s) to 2 file(s)

来自分支的合并请求使用目标项目中定义的模板。为满足项目需求,可以自定义这些消息并包括其他占位符变量。

先决条件:

  • 您必须具有维护者角色。

要执行此操作:

  1. 在左侧边栏中,选择 搜索或跳转 并找到您的项目。
  2. 选择 设置 > 合并请求
  3. 向下滚动到 合并建议,并根据需要修改文本。 查看 支持的变量 获取您可以在此消息中使用的占位符列表。

支持的变量

应用建议的提交消息模板支持以下变量:

变量 描述 输出示例
%{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

批量应用建议

先决条件:

  • 您必须拥有可以提交到源分支的项目角色。

为了减少提交到分支的次数,可以将多个建议合并为一个提交进行应用。

  1. 在左侧边栏中,选择 搜索或跳转 并找到您的项目。
  2. 选择 代码 > 合并请求 并找到您的合并请求。
  3. 对于每个您想应用的建议,选择 将建议添加到批量
  4. 可选:若要移除某个建议,选择 从批量中移除
  5. 在添加完所需的建议后,选择 应用建议

    caution 如果您应用了一个包含多个作者更改的批量建议,最终的提交会以您为作者。如果您配置了项目以 防止添加提交的用户进行审批,则您将不再是该合并请求的合适审批人。
  6. 可选:为 批量建议 提供自定义提交消息,以描述您的更改。如果没有指定,则使用默认的提交消息。

相关主题