开始之前
- 你需要拥有 Enclave 中的 Owner 或 Admin 角色。
- Enclave 会列出你拥有 Developer 或更高角色的 GitLab 群组。
- 如需添加 webhook,你需要每个项目的 Maintainer 角色,或群组的 Owner 角色。群组 webhook 需要 GitLab Premium 或 Ultimate。
- 对于自托管 GitLab,访问令牌需要
api作用域和 Maintainer 角色。
连接 GitLab
1
打开集成
在 app.enclave.ai 中打开 Settings → Integrations。点击 GitLab 旁边的 Connect。
2
授权 GitLab
选择 GitLab.com,登录你的 GitLab 账号,并授权 Enclave 应用。
GitLab 的 OAuth 会授予 Enclave
api 作用域。GitLab 没有更窄的作用域可以同时允许发布 MR 评论和管理 webhook。Enclave 使用它读取项目和合并请求、发布 MR 评论以及接收 webhook 事件。3
添加 webhook
Enclave 会显示 Webhook URL 和 Secret token。复制这两项。密钥只会显示一次。在 GitLab 中,打开你的项目(对于自托管 GitLab,也可以是群组),然后前往 Settings → Webhooks。粘贴 URL 和密钥令牌,启用 Push events 和 Merge request events,然后点击 Add webhook。点击 Test 发送一次投递。在收到第一个事件之前,连接会一直处于待处理状态。
4
选择哪些项目进行 MR 审查
每个 GitLab 项目默认都开启自动审查。如需为某个项目关闭,请在 Coverage → Repositories 中使用其 PR Reviews 开关。请参阅 PR 与依赖分析。
技巧
- 为 Enclave 创建专用的 GitLab 账号,以便清楚地标识 MR 评论的来源。对于自托管 GitLab,最好使用服务账号令牌,其次是群组访问令牌。个人令牌也可以使用,但每条评论都会以你的名义显示。
- 连接系统中的每个项目。 只有同时看到服务及其调用的 API 时,Enclave 才能发现跨服务问题。
故障排除
对于自托管 GitLab,Validate & connect 会先检查你的 URL 和令牌:- Enclave requires GitLab 14 or newer:升级你的实例。
- GitLab rejected the token 或 The token must include the ‘api’ scope:签发一个具有
api作用域的新令牌。 - The token authenticated but cannot see any projects:先将该令牌添加到某个群组或项目。
- We refused to call that URL:该主机名解析到了私有或内部地址。Enclave 不会连接这类地址。
- We could not reach your GitLab instance:检查 URL 和防火墙规则。