本文介绍云效 AI 助手在智能评审场景的功能。AI 助手结合代码内容变更,提供代码评审、修复建议、自定义规则、智能对话等能力,可降低人工评审成本,提高代码评审效率。
使用条件:高级版专属功能,版本说明参见套餐版本。
评审标题/描述自动生成
代码库开发者及以上角色创建合并请求,选择源/目标分支;
点击标题或描述输入框中的自动生成图标,可触发对应内容的自动生成;
创建完成后,进入评审详情也支持基于变更内容触发自动生成更新描述信息。
代码智能评审
设置 AI 评审规则
代码库管理员进入代码库设置,选择 AI 助手设置;
配置 AI 评审默认设置:
若选择 无,代表任意分支作为目标分支新建合并请求时,都不会自动触发评审;
若选择全部,代表任意分支作为目标分支新建合并请求时,都会自动触发评审;
支持指定命名的分支,作为目标分支新建合并请求时,能够自动触发评审。分支名称支持通配符,书写规则为 glob 语法:
?
匹配单个字符(不包括/
)。*
匹配单级路径下的多个字符。**
匹配多级路径。具体规则请参考: glob。
配置自定义 AI 评审规则(可选):通过配置适合团队评审偏好的评审规则,可以提高精度和降低幻觉。
自定义 AI 评审规则说明
云效支持通过 yaml 文件的形式定义评审规则,以源分支下命名为 .aliyun/code/code_review.yaml 的 yaml 文件为准,评审规则针对当前仓库所有分支生效。
yaml 文件支持的语法
基于以下示例进行说明,文件标识关键字 reviews,支持通过关键字 ignores 设置忽略评审的文件,通过 language 配置评审语言,通过 problem_level 设置评审的严格程度,以及通过关键字 path_instructions 设置指定路径的自定义评审规则。
reviews:
# files that ignore to review, glob pattern
ignores:
- myfile.txt
- myfolder/
- "*.log"
- "**/logs"
- /debug.log
# basic config
language: "zh-CN" # 可选值 [zh-CN|en-US]
problem_level: "CRITICAL" # 可选值 [BLOCKER|CRITICAL|MAJOR|MINOR]
# instructions match specify file path
path_instructions:
- path: "**/*.js"
instructions: 'Review the JavaScript code against the Alibaba JavaScript style
guide and point out any mismatches'
- path: "tests/**.*"
instructions: |-
Review the following unit test code written using the Mocha test library. Ensure that:
- The code adheres to best practices associated with Mocha.
- Descriptive test names are used to clearly convey the intent of each test.
忽略部分文件不进行评审。
针对部分配置文件、测试文件可能无需进行评审,支持通过 ignores 关键词配置忽略评审的文件路径规则,路径描述支持 glob 语法设置通配符,具体规则参考 glob。
reviews:
# files that ignore to review, glob pattern
ignores:
- myfile.txt
- myfolder/
- "*.log"
- "**/logs"
- /debug.log
设置评审基础配置
language 参数:支持选择 zh-CN(中文) 或者 en-US(英文),默认中文;
problem_level 参数:支持选择 BLOCKER(仅报阻断问题)、CRITICAL(报严重及以上问题)、MAJOR(报主要及以上问题)、MINOR(报建议及以上问题),评审严格程度递减,默认为 CRITICAL。如果设置为 MINOR,可能产生较多的评审问题;
reviews:
# basic config
language: "zh-CN" # 可选值 [zh-CN|en-US]
problem_level: "CRITICAL" # 可选值 [BLOCKER|CRITICAL|MAJOR|MINOR]
自定义评审规则。
团队可能存在自己的评审偏好,支持通过 path_instructions 关键词配置指定文件路径的自定义评审规则,可通过自然语言进行描述。路径描述支持 glob 语法设置通配符,具体规则参考 glob。
reviews:
# instructions match specify file path
path_instructions:
- path: "**/*.js"
instructions: 'Review the JavaScript code against the Alibaba JavaScript style
guide and point out any mismatches'
- path: "tests/**.*"
instructions: |-
Review the following unit test code written using the Mocha test library. Ensure that:
- The code adheres to best practices associated with Mocha.
- Descriptive test names are used to clearly convey the intent of each test.
使用 AI 智能评审
评审限制
AI 评审目前对变更大小的限制如下:
不支持评审超过 1000 个变更行;
不支持评审超过 100 个变更文件;
触发评审
新建合并请求时,支持设置新建后是否立即执行 AI 评审,若AI 评审默认设置已配置分支规则,则命中目标分支规则时将自动勾选 AI 评审。
合并请求详情中,支持开发者及以上角色的用户手动触发评审。
若有 AI 评审或评论正在进行中,则不可频繁触发,需等待执行完成后触发。
若当前版本已经执行过 AI 评审,则不可重复触发,需更新代码内容后再次触发。
评审效果
代码变更内容摘要,包括更改文件的列表和文件描述。
代码行级问题审查和修复建议:
评审总结