合并请求中的 GitLab Duo
GitLab 旨在在合并请求的生命周期中提供上下文相关的信息。
通过总结代码更改生成描述
- Tier: Premium, Ultimate
- Add-on: GitLab Duo Enterprise
- Offering: GitLab.com, GitLab Self-Managed
- Status: Beta
- LLM: Anthropic Claude 4.0 Sonnet
- Available on GitLab Duo with self-hosted models: Yes
当你创建或编辑合并请求时,使用 GitLab Duo 合并请求摘要来创建合并请求描述。
-
在描述字段中,将光标放在要插入描述的位置。
-
在文本区域上方的工具栏中,选择总结代码更改( )。
描述会插入到光标所在的位置。
在 issue 443236 中提供此功能的反馈。
数据使用:源分支头部与目标分支之间的更改差异会发送给大语言模型。
让 GitLab Duo 审查你的代码
- Tier: Premium, Ultimate
- Add-on: GitLab Duo Enterprise
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
- LLM: Anthropic Claude 4.0 Sonnet
- Available on GitLab Duo with self-hosted models: Yes
当你的合并请求准备好进行审查时,使用 GitLab Duo 代码审查来执行初步审查:
- 在左侧边栏中,选择搜索或跳转并找到你的项目。
- 选择代码 > 合并请求并找到你的合并请求。
- 在评论框中,输入快速操作
/assign_reviewer @GitLabDuo,或将 GitLab Duo 指定为审查者。
在 issue 517386 中提供此功能的反馈。
数据使用:当你使用此功能时,以下数据会发送给大语言模型:
- 已更改文件的内容
- 文件名
- 合并请求标题
- 合并请求描述
在审查中与 GitLab Duo 交互
你可以在评论中提及 @GitLabDuo 来与 GitLab Duo 交互。你可以对其审查评论提出后续问题,或在合并请求的任何讨论线程中提问。
与 GitLab Duo 的交互可以帮助你在改进合并请求时提高建议和反馈的质量。
GitLab Duo 的自动审查
GitLab Duo 的自动审查确保项目中的所有合并请求都获得初步审查。 合并请求创建后,GitLab Duo 会对其进行审查,除非:
- 它被标记为草稿。要让 GitLab Duo 审查合并请求,请将其标记为就绪。
- 它不包含任何更改。要让 GitLab Duo 审查合并请求,请向其添加更改。
先决条件:
- 你必须在项目中至少拥有 Maintainer 角色。
要启用 @GitLabDuo 自动审查合并请求:
- 在左侧边栏中,选择搜索或跳转并找到你的项目。
- 选择设置 > 合并请求。
- 在GitLab Duo 代码审查部分,选择启用 GitLab Duo 的自动审查。
- 选择保存更改。
自定义 GitLab Duo 代码审查的说明
此功能的可用性由功能标志控制。 有关更多信息,请查看历史记录。
GitLab Duo 代码审查可以帮助确保项目中的代码审查标准一致。 定义文件的 glob 模式,并为匹配该模式的文件创建自定义说明。例如,仅在 Ruby 文件上强制执行 Ruby 风格约定,在 Go 文件上执行 Go 风格约定。GitLab Duo 会将你的自定义说明附加到其标准审查标准中。
要配置自定义说明:
- 在仓库的根目录中,如果尚不存在,请创建一个
.gitlab/duo目录。 - 在
.gitlab/duo目录中,创建一个名为mr-review-instructions.yaml的文件。 - 使用以下格式添加你的自定义说明:
instructions:
- name: <instruction_group_name>
fileFilters:
- <glob_pattern_1>
- <glob_pattern_2>
- !<exclude_pattern> # 排除匹配此模式的文件
instructions: |
<your_custom_review_instructions>例如:
instructions:
- name: Ruby Style Guide
fileFilters:
- "*.rb"
- "lib/**/*.rb"
- "!spec/**/*.rb" # 排除测试文件
instructions: |
1. 确保所有方法都有适当的文档
2. 遵循 Ruby 风格指南约定
3. 哈希键优先使用符号而非字符串
- name: TypeScript Source Files
fileFilters:
- "**/*.ts"
- "!**/*.test.ts" # 排除测试文件
- "!**/*.spec.ts" # 排除规范文件
instructions: |
1. 确保适当的 TypeScript 类型(避免使用 'any')
2. 遵循命名约定
3. 为复杂函数添加文档
- name: All Files Except Tests
fileFilters:
- "!**/*.test.*" # 排除所有测试文件
- "!**/*.spec.*" # 排除所有规范文件
- "!test/**/*" # 排除测试目录
- "!spec/**/*" # 排除规范目录
instructions: |
1. 遵循一致的代码风格
2. 为复杂逻辑添加有意义的注释
3. 确保适当的错误处理
- name: Test Coverage
fileFilters:
- "spec/**/*_spec.rb"
instructions: |
1. 测试正常路径和边界情况
2. 包含错误场景
3. 使用共享示例来减少重复自定义的代码审查评论
当 GitLab Duo 代码审查根据你的自定义说明生成代码审查评论时,它们遵循以下格式:
根据 '[instruction_name]' 中的自定义说明:[具体反馈]例如:
根据 'Ruby Style Guide' 中的自定义说明:此方法应有适当的文档说明其目的和参数。instruction_name 值对应于你的 .gitlab/duo/mr-review-instructions.yaml 文件中的 name 属性。标准的 GitLab Duo 评论不使用此引用格式。
总结代码审查
- Tier: Premium, Ultimate
- Add-on: GitLab Duo Enterprise
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
- Status: Experiment
- LLM: Anthropic Claude 4.0 Sonnet
- Available on GitLab Duo with self-hosted models: Yes
当你完成对合并请求的审查并准备提交你的审查时,使用 GitLab Duo 代码审查摘要来生成你的评论摘要。
- 在左侧边栏中,选择搜索或跳转并找到你的项目。
- 选择代码 > 合并请求并找到你想要审查的合并请求。
- 当你准备提交审查时,选择完成审查。
- 选择添加摘要。
摘要会显示在评论框中。你可以在提交审查之前编辑和完善摘要。
在 issue 408991 中提供此实验性功能的反馈。
数据使用:当你使用此功能时,以下数据会发送给大语言模型:
- 草稿评论的文本
生成合并提交消息
- Tier: Premium, Ultimate
- Add-on: GitLab Duo Enterprise, GitLab Duo with Amazon Q
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
- LLM: Anthropic Claude 4.0 Sonnet
- LLM for Amazon Q: Amazon Q Developer
- Available on GitLab Duo with self-hosted models: Yes
在准备合并你的合并请求时,使用 GitLab Duo 合并提交消息生成来编辑建议的合并提交消息。
- 在左侧边栏中,选择搜索或跳转并找到你的项目。
- 选择代码 > 合并请求并找到你的合并请求。
- 在合并小部件上,选择编辑提交消息复选框。
- 选择生成提交消息。
- 查看提供的提交消息,并选择插入将其添加到提交中。
数据使用:当你使用此功能时,以下数据会发送给大语言模型:
- 文件内容
- 文件名