极狐 GitLab

代码审核使用指南

代码评审功能配置#

1. 配置 GitLab SAST#

如果您无需使用 SAST 结果作为代码评审参考,请直接跳转第 2 步“Webhook 的配置”。

  1. 确认您是 GitLab 旗舰版用户,参考 GitLab 官方文档配置
  2. .gitlab-ci.yml 文件中增加 artifacts 的 paths 配置。
yaml
1include: 2 - template: Jobs/SAST.gitlab-ci.yml 3 4semgrep-sast: 5 artifacts: 6 paths: [ gl-sast-report.json ]

2. Webhook的配置#

拥有项目“开发者”及以上权限的用户,打开项目“设置”的“Webhooks”,点击“添加新的 webhook”。

image.png

2.1 输入下列对应信息:#
  1. URL:

    URL区别示例
    http://xxx/api/v1/webhook
    其中 xxx 需替换为 CodeRider 实例地址
    1. 需邀请 CodeRider Agent 用户进入项目。(邀请方式见下文补充说明。Agent 用户名称根据企业配置可能不同)https://coderider.jihulab.com/api/v1/webhook
    http://xxx/api/v1/webhook?token=aaa
    其中 xxx 需替换为 CodeRider 实例地址,aaa 需替换为用户/项目/群组 级别的 PAT(需有权限访问当前 MR)
    1. 适用于:群组配置了 SAML SSO 单点登录;
    2. 无需邀请 CodeRider Agent 用户进入项目
    https://coderider.jihulab.com/api/v1/webhook?token=glpat-EKP2hGw_xxxxNubx
  2. 选择“显示完整的URL”。

  3. 输入“Secret 令牌” :Secret 令牌请联系企业管理员获取。

    • SaaS 令牌获取联系 极狐GitLab。
    • 私有化部署客户企业管理员参考:私有化部署的令牌需在企业管理平台生成。

    image.png

  4. “触发来源”勾选:评论、合并请求事件。

    • 若您未配置且不使用 SAST 结果作为代码评审参考,请勾选:评论、合并请求事件。
    • 若您已配置且需要使用 SAST 结果作为代码评审参考,请勾选:评论、合并请求事件、流水线事件。
  5. 勾选“启用SSL验证”。

2.2 配置信息填写完成后,点击“添加webhook”确认配置即可配置成功。#

image.png

补充说明:

  1. 若 Webhook 的 URL 未配置用户 PAT,则需要邀请 CodeReview Agent 进入待评审的项目或群组,邀请方式:将“CodeRider Agent”邀请成为项目成员,并赋予“开发者”权限。 image.png
  2. 若管理员需要通过修改部署配置来修改“CodeRider Agent”用户名称,请注意修改后的评审智能体用户名称不得包含"codium", "bot_", "bot-", "_bot", "-bot"。

3. 项目级的评审规则配置#

确保您待合并分支有文件 .coderider-review.toml

toml
1[config] 2# 每个 MR 最多包含的文件数限制,如超过最大限制会报错并不会触发代码审核 3mr_max_files = 10 # 1-15之间的整数 4 5[coderider_code_suggestions] 6# 评审建议数量限制 7num_code_suggestions = 3 # 1-5之间的整数 8# 生成代码时的额外指令 9extra_instructions = " " # 不超过1000字的文本 10 11[coderider_reviewer] 12# 代码审查时的额外指令 13extra_instructions = " " # 不超过1000字的文本 14 15[exclude_files] 16# 代码审核时忽略的文件夹或文件类型 17# 下述两种配置方式选其一即可 18glob = [ ] # glob 方式配置,如 glob = ['vendor/**'] 19regex = ' ' # regex 方式配置,如 regex = '.*\.toml$'

配置参数说明:

  • config 区块:控制基本行为
    • mr_max_files:限制每个合并请求中分析的最大文件数,防止审查过于复杂的变更
  • coderider_code_suggestions 区块:控制代码建议生成
    • num_code_suggestions:控制为每个问题提供的代码改进建议数量
    • extra_instructions:为代码生成提供额外上下文和指导方向
  • coderider_reviewer 区块:控制代码审查行为
    • extra_instructions:为代码审查提供额外指导和重点关注领域
  • exclude_files 区块:控制代码评审文件
    • glob:使用 glob 方式指定要排除的文件或文件夹
    • regex:使用 regex 方式指定要排除的文件或文件夹
    • 以上两种配置方式可同时生效。

通过适当配置,可以使 CoderRider 关注团队特定的编码标准、安全问题或性能优化等方面。

配置区块配置项说明有效值默认值
[config]mr_max_files每个合并请求(MR)最多包含的文件数限制1-15的整数10
[coderider_code_suggestions]num_code_suggestions生成的代码改进建议数量限制1-5的整数3
extra_instructions针对代码生成的额外指令不超过1000字的文本
[coderider_reviewer]extra_instructions针对代码审查的额外指令不超过1000字的文本
[exclude_file]globglob 方式指定代码评审忽略文件、文件夹类型--
regexregex 方式指定代码评审忽略文件、文件夹类型--

代码评审功能使用#

CodeRider 支持 GitLab 项目基于 Web 端调用 MR 代码审核 Agent。当群组/项目代码仓已配置好审核功能后,触发方式:

  • 无需使用 SAST 扫描结果作为评审参考:
    • 首次提交 MR,触发 MR 时自动评审。
    • 当再次提交合并请求时,需手动触发代码审核,触发方式:在已提交的 MR 审核框输入@CODERIDER_AGENT /coderider-review即可启动评审,稍等片刻即可看到评审建议。
  • 需使用 SAST 扫描结果作为评审参考:
    • 需要在 SAST 扫描任务运行成功后手动触发,触发方式:在已提交的 MR 审核框输入/coderider-review即可启动评审,稍等片刻即可看到评审建议。

评审意见操作:CodeRider 支持您针对评审建议进行修改、评论,或点击“应用建议”再次提交变更代码。

image.png image.png