概述
本指南将完整介绍如何将 GitLab 实例 集成到 Devin 中,包括 Admin 设置 和 终端用户设置。Devin 支持 GitLab Self-Managed 15.0 及更高版本。 该集成分为两个部分:- Admin 设置
- 将组织的自托管 GitLab 实例连接到 Devin
- 设置服务账户
- 配置代码仓库访问权限
- 注册 OAuth,以便用户关联自己的 GitLab 账户
- 终端用户设置
- 将单个用户的 GitLab 账户关联到其 Devin 账户
必须先完成Admin 设置,用户才能关联其 GitLab 账户。只有 Enterprise Admin 可以执行Admin 设置步骤。
第 1 部分:Admin 设置
步骤 1:在 GitLab 中创建服务账户
在 GitLab 中:- 进入正确的 GitLab 组
- 导航到 Settings
- 打开 Service Accounts
- 创建一个新的服务账户

步骤 2:将服务账户添加为组成员
仍在 GitLab 中:- 前往该组的成员页面

- 将服务账户添加为该组的成员
- 根据 Devin 需要执行的操作,为其授予相应角色:
- Developer:足以连接 Devin 并读取仓库
- Maintainer:适用于需要 Devin 自动设置项目 webhook 的情况
- Owner:适用于组级别 webhook (组 webhook 需要 GitLab Premium 或 Ultimate)
步骤 3:为服务账户生成个人访问令牌
创建服务账户后:- 找到新创建的服务账户
- 点击三个点 > 管理访问令牌 > 生成新的个人访问令牌 > 在访问作用域中选择 api
- 复制该令牌并妥善保管
请确保你选择的是服务账户的令牌,而不是在你的用户偏好设置中找到的个人访问令牌。你需要让 Devin 以服务账户的身份执行操作,而不是以你的身份执行。在 Devin 中添加 GitLab 连接时,你将使用此令牌。
步骤 4:在 Devin 中添加 GitLab 连接
在 Devin 中:- 前往 企业设置
- 打开 连接
- 添加新连接
- 输入:
- 自托管 GitLab URL (如适用)

- 服务账户的个人访问令牌
步骤 5:配置 Webhook
配置 webhook 后,当 GitLab 中发生特定事件 (例如创建或更新 merge request,以及在 merge request 中发表评论) 时,Devin 可以自动接收实时通知。 配置 webhook 的步骤如下:- 在 Devin 中,前往 Settings > 连接 > GitLab,点击刚添加的 GitLab 连接,打开其详情面板
- 在 General 选项卡中,点击 Webhook 行中的 Configure
- 从对话框中复制 webhook URL 和 Secret Token
- 按照对话框中的 Group (推荐) 或 Project 步骤在 GitLab 中添加 webhook,并勾选 Comments、Merge request events、Push events、Issues events 和 Pipeline events 触发器
在 GitLab 中添加 webhook 需要拥有项目的 Maintainer 角色;如需添加组 webhook (Premium 或 Ultimate) ,则需要拥有组的 Owner 角色。如果你的组织已启用自动 webhook 设置,对话框会提示 Devin 将在服务账户可管理的所有项目和组上设置 webhook;但这仅在服务账户拥有上述角色的项目或组中生效 (参见步骤 2) 。如果你无法为服务账户授予 Maintainer 或 Owner 角色,可以请拥有相应权限的 GitLab 用户使用对话框中的 URL 和 secret token 手动添加 webhook。
步骤 6:验证代码仓库访问权限
添加连接后:- 确认服务账户有权访问你要使用的代码仓库
- 在 Devin 中,如果代码仓库没有立即显示,请手动刷新代码仓库列表
- 前往 企业代码仓库
- 选择正确的组织

- 打开 管理权限
- 添加相关代码仓库,并授予适当的 读取/写入 权限

如果有代码仓库缺失,可能是因为 Devin 会定期刷新代码仓库列表,而不是实时刷新。
第 2 部分:为自托管 GitLab 启用用户关联
步骤 7:在自托管 GitLab 实例上注册 OAuth 应用程序
为了让每位用户都能将自己的 GitLab 身份与 Devin 关联,Admin 必须为该自托管 GitLab 实例注册一个 OAuth 应用。 在 Devin 中:- 前往企业 GitLab 连接区域
- 打开 Advanced
- 前往自托管 GitLab 部分
- 启动 注册 OAuth 应用程序 流程

步骤 8:在 GitLab 中完成 OAuth 应用注册
按照注册模态窗口中的链接打开 GitLab 应用程序表单。按下图所示填写各项字段:- 将 Name 和 Redirect URI 设置为与 Devin 模态窗口中显示的内容完全一致
- 勾选 Confidential 复选框
- 选择 api 作用域
- 点击 Save application

- 从 GitLab 复制 Application ID 和 Application Secret
- 返回 Devin,将这些值粘贴到注册模态窗口中
- 点击 Register
第 3 部分:组织成员资格要求
步骤 9:确保用户属于正确的 Devin 组织
用户必须先成为拥有 GitLab 代码仓库权限的 Devin 组织成员,才能关联其 GitLab 账户。 在 Devin 中:- 前往组织成员页面
- 确认该用户属于拥有 GitLab 代码仓库权限的 Devin 组织
- 如果不属于,请先将其添加到该组织
个人连接只会显示用户所属组织的集成。 如果用户不在拥有 GitLab 代码仓库权限的 Devin 组织中,GitLab 集成可能完全不会显示。
第 4 部分:终端用户设置
步骤 10:打开个人连接
以 Devin 终端用户身份:- 前往 个人连接
- 查找自托管 GitLab 集成
步骤 11:关联用户的 GitLab 账户
集成显示出来后:- 选择自托管的 GitLab 连接
- 完成关联流程
- 将用户的 GitLab 账户 关联到其 Devin 账户
安全注意事项
- 加密凭据 — 所有令牌均经过加密并安全存储,包括服务账户的个人访问令牌、OAuth 应用程序的 secret,以及用户关联其 GitLab 账户时创建的 OAuth 令牌。
- 传输加密 — 所有数据在传输和静态存储时均经过加密。Devin 通过 HTTPS 连接到你的 GitLab 实例,并使用配置 webhook 时生成的 secret 令牌验证 webhook 投递。
- 显式授权 — 仅添加连接并不会授予任何仓库访问权限。必须在 企业代码仓库 > 管理权限 中,将仓库以读/写权限显式授予某个 Devin 组织。
- 限定作用域的访问权限 — Devin 通过服务账户执行操作,因此该账户在 GitLab 中的角色 (Developer、Maintainer 或 Owner) 及其所属项目决定了 Devin 的访问范围。
- 可审计性 — 使用专用服务账户可以更方便地追溯 Devin 在 GitLab 中的活动。
- 遵守分支保护 — 与其他贡献者一样,Devin 的 merge request 同样受分支保护规则和批准要求的约束。

