GitLab 集成 AI 智能评审

更新时间:
复制 MD 格式

将 GitLab 接入云效 AI 智能评审后,新建或重新打开合并请求即自动触发代码评审,评审意见直接回写到 GitLab 合并请求。云效支持公网和企业内网(VPC)两种接入方式。

说明

仅云效组织管理员可以配置 GitLab 集成。中心组织仅支持接入公网可访问的 GitLab;地域组织开启专有网络访问模式后,可以通过反向访问 IP 接入企业内网的 GitLab。

使用前提

接入 GitLab 前,确认已满足以下条件:

  • 已创建 GitLab 个人访问令牌(Personal Access Token,PAT),并为令牌授予 api scope。该令牌用于读取合并请求代码并写入评审意见。

  • 云效能够访问 GitLab API。

  • GitLab 能够访问云效生成的 Webhook URL。

AI 评审规则、评审模式、变更规模限制和评审效果的说明,参见代码评审 AI 助手

接入公网 GitLab

GitLab 可以通过公网访问时,按照以下步骤配置连接:

  1. 使用组织管理员账号登录云效。

  2. 进入代码管理 > 全局设置 > 智能评审

  3. 确认未勾选URL仅能通过内网访问

  4. GitLab 地址填写 GitLab 的公网访问地址,例如 https://gitlab.example.com

  5. Personal Access Token 填写具有 api scope 的 GitLab PAT。

  6. 单击测试连接

    连接成功后,页面会显示当前 PAT 对应的 GitLab 用户信息。连接失败时,检查 GitLab 地址、PAT 权限以及云效到 GitLab 的网络连通性。

  7. 单击保存

    保存成功后,页面会生成 Webhook URL 和 Secret Token。

接入内网 GitLab

地域组织支持通过专有网络(VPC)访问企业内网的自建 GitLab。该方式无需为 GitLab 配置公网 IP,也无需向公网开放 GitLab 服务端口。

配置专有网络

  1. 登录云效控制台。

  2. 左侧导航栏选择实例管理 > 标准版,进入目标地域组织的详情页。

  3. 选择网络配置页签,勾选开启专有网络访问模式

  4. 单击添加专有网络,选择 GitLab 所在的 VPC 或能够访问 GitLab 的 VPC,并关联安全组和交换机。

地域组织专有网络的详细配置方法,参见新建和管理组织

添加反向访问 IP

  1. 从已关联的专有网络列表找到目标 VPC。

  2. 反向访问IP列单击管理

  3. 编辑反向访问IP对话框,单击添加,配置以下信息:

    • 内网IP或域名:填写企业 VPC 内 GitLab 的私网 IP 或内网域名。

    • 内网端口:填写 GitLab 实际提供服务的端口,例如 80、443 或企业自定义端口。

  4. 单击保存

配置生效后,云效会自动为 GitLab 私网地址生成映射 IP 和映射端口。智能评审将通过该映射地址访问 GitLab。

重要

按照最小权限原则配置安全组、网络 ACL 和 GitLab 主机防火墙,仅开放 GitLab 实际使用的端口。无需为 GitLab 配置公网 IP,也无需开放公网入方向规则。

配置 GitLab 连接

  1. 使用组织管理员账号,通过地域组织的访问域名进入云效。

  2. 进入代码管理 > 全局设置 > 智能评审

  3. 勾选URL仅能通过内网访问

  4. 反向访问VPC 选择前面关联的 VPC。

  5. 反向访问IP 选择 GitLab 对应的私网地址和端口。

    选择项会同时显示 GitLab 私网地址以及云效生成的映射地址。云效会自动使用映射 IP 和映射端口连接 GitLab,无需手动填写映射地址。

  6. Personal Access Token 填写具有 api scope 的 GitLab PAT。

  7. 单击测试连接

  8. 测试通过后,单击保存

    保存成功后,页面会生成 Webhook URL 和 Secret Token。

配置 GitLab Webhook

保存 GitLab 连接后,页面会生成 Webhook URL 和 Secret Token。为每个使用 AI 智能评审的 GitLab 项目配置 Webhook:

  1. 进入 GitLab 项目,选择Settings > Webhooks

  2. URL 填写云效 GitLab 集成页面生成的 Webhook URL。

  3. Secret token 填写云效 GitLab 集成页面生成的 Secret Token。

  4. 勾选以下触发事件:

    • Merge request events

    • Comments

  5. 单击Add webhook保存配置。

说明

建议使用 GitLab 提供的 Webhook 测试功能验证网络连通性。测试失败时,检查 Webhook URL、Secret Token 和网络配置。

GitLab 的系统级 Webhook(System Hook)不支持 Comments 事件。如果需要使用 AI 助手的追问功能,为每个需要该功能的 GitLab 项目配置项目级 Webhook,并勾选 Comments 事件。

对于内网 GitLab,确认 GitLab 所在 VPC 能够解析并访问云效生成的专有网络 Webhook URL。完整网络链路如下:

  • 评审请求:云效 AI 智能评审 → 云效映射 IP 和端口 → GitLab 私网地址和端口。

  • 事件回调:GitLab → 云效专有网络 Webhook URL → 云效 AI 智能评审。

触发 AI 智能评审

完成 GitLab 连接和项目 Webhook 配置后,新建或重新打开 GitLab 合并请求即可触发 AI 智能评审。

评审过程中,云效 AI 助手会分析合并请求的代码变更。评审完成后,问题等级、问题说明和修复建议会回写到 GitLab 合并请求。

解除 GitLab 集成

  1. 进入云效全局设置 > 智能评审

  2. 单击删除连接

解除连接后,云效不再处理该 GitLab 连接发送的 Webhook 事件。建议同时删除各 GitLab 项目对应的 Webhook 配置。

常见问题

测试连接失败怎么办?

检查以下内容:

  • GitLab 地址或选择的反向访问 IP 是否正确。

  • PAT 是否有效并具有 api scope。

  • 云效是否能够访问 GitLab API。

  • 安全组、网络 ACL、GitLab 主机防火墙或证书配置是否限制了访问。

为什么选择反向访问 IP 后显示映射地址?

这是正常现象。反向访问配置生效后,云效会为 GitLab 私网地址生成映射 IP 和映射端口。智能评审使用映射地址访问 GitLab,无需手动修改。

内网 GitLab 是否需要开放公网访问?

不需要。云效通过反向访问映射访问 GitLab 私网服务,GitLab 通过云效专有网络 Webhook URL 回调评审事件。确保两个方向的内网链路均可访问。

已配置 Webhook,但没有触发评审怎么办?

检查以下内容:

  • Webhook URL 和 Secret Token 是否与云效 GitLab 集成页面显示的信息一致。

  • 是否勾选 Merge request eventsComments

  • GitLab 是否能够访问云效生成的 Webhook URL。

  • GitLab Webhook 的最近请求记录是否存在连接失败、鉴权失败或超时。

  • 合并请求是否产生了新建或重新打开事件。