Skip to main content

为什么要将 Devin 与 GitLab 集成?

将 Devin 与你的 GitLab 代码仓库集成后,Devin 就可以创建 Merge request、读取并回复你在 MR comment 中的评论,并与你的团队高效协作。这样一来,Devin 就能成为你工程团队中的真正协作伙伴。
使用自托管的 GitLab 实例? 我们为使用 Enterprise 套餐的用户提供对 GitLab Self-Managed (15.0 及更高版本) 的支持。只需点击 “Connect” 按钮上的下拉菜单,然后选择 Connect to self-hosted instance。如需完整的设置指示,请参阅 GitLab Self-Managed Integration guide。同一个下拉菜单中还提供 Connect service account 选项,它使用具备 api 作用域的个人访问令牌来连接 GitLab.com 服务账户 (或 Free 层级上的专用用户账户) ,而无需使用下文的 OAuth flow。

设置集成

集成设置非常简单! 按照以下步骤开始:
  1. 为 Devin 专门创建一个新的账户 (就像你创建个人账号一样) 。在集成过程中,你将使用这个账号,而不是你的个人账号。
  2. 在你的 Devin 账号中,前往 Settings > 连接 > GitLab,然后点击“Connect”。
  3. 系统会将你重定向到 GitLab,在那里你需要:
    • 使用你为 Devin 创建的账户登录 (而不是你的个人账号)
    • 授予 Devin 访问和操作你代码仓库所需的权限
  4. 完成后,你会回到 Devin 的设置页面,在那里你可以确认集成已成功启用。
对于本地部署 (自托管) 的 GitLab 实例,将合并请求 (Merge Request,MR) 状态 (open、merged、closed) 同步到 Devin 会话的操作每天仅执行一次。因此,在下一次同步发生之前,你的会话或会话列表中显示的 MR 状态可能会在一段时间内与实际状态存在偏差。

Webhook 配置

配置 webhook 后,Devin 就能在 GitLab 中发生特定事件时自动接收实时通知 (例如创建或更新Merge request,以及在Merge request中发表评论) 。 要配置 webhook:
  1. 在你的 Devin 账户中,前往 设置 > 连接 > GitLab
  2. 点击你要配置的 GitLab 连接,打开其详情面板
  3. 在 General 选项卡中,点击 Webhook 一行中的 Configure
  4. 从对话框中复制 webhook 的 URL 和 Secret Token
  5. 按照对话框中的 Group (推荐) 或 Project 步骤在 GitLab 中添加 webhook,并勾选 Comments、Merge request events、Push events、Issues events 和 Pipeline events 触发器
在 GitLab 中添加 webhook 需要拥有项目的 Maintainer 角色;如果是组 webhook,则需要拥有组的 Owner 角色 (组 webhook 仅适用于 GitLab Premium 和 Ultimate) 。如果你的组织支持自动设置 webhook,对话框会提示 Devin 将在其 GitLab 账户有管理权限的所有项目和组上自动设置 webhook;只有 Devin 无法访问的项目才需要按手动步骤操作。
配置完成后,Devin 就可以实时响应 GitLab 事件,而不再依赖定期轮询。

代码仓库权限

面向 Core 和 Teams 用户

集成配置完成后,你可以在 Devin Web 应用中的提示中直接 @ 提及代码仓库。

企业版用户

集成配置完成后,你可以在 设置 > 代码仓库 中将代码仓库交给特定组织。
  1. 从页面顶部的下拉菜单中选择组织
  2. 点击 管理权限
  3. 添加相关的组或代码仓库,并授予 读写 或 只读 访问权限
详情请参阅 代码仓库权限。
如果连接后代码仓库未立即显示,Devin 会定期刷新代码仓库列表。你也可以在 Devin 中手动刷新代码仓库列表。

用户关联

除了组织级连接之外,个人用户还可以将自己的 GitLab 账户关联到 Devin,让 Devin 以该用户的身份执行 GitLab 操作。例如,当 Settings > Devin > Pull requests 中的 Open PRs as 设置为 User 或 User only 时,Devin 会以关联用户的身份创建 Merge request。 关联个人 GitLab 账户的步骤:
  1. 确认你是某个已配置 GitLab 集成的 Devin 组织的成员
  2. 在个人账户设置中前往 Settings > 连接
  3. 找到 GitLab 一行并点击 Link,然后完成 GitLab 授权
Personal Connections 只会显示用户所属组织的集成。 只有当你的组织已建立 GitLab.com 连接时,才会出现 GitLab 一行。自托管的 GitLab 实例 (Enterprise 套餐) 会单独显示为 Self-hosted GitLab 行,并标注对应主机地址,关联方式相同。如果没有出现 GitLab 行,请确认你是某个已建立 GitLab 连接的 Devin 组织的成员。

将 Devin 与 GitLab 集成配合使用

连接 GitLab 后,请在 Devin’s Machine 上设置你的代码仓库。
Devin 如何响应 MR comment。 配置好 webhook 后,在 Devin 会话 正在跟踪的 Merge request 上发表的评论会实时传递给该 会话。默认情况下,这会唤醒处于休眠状态的 会话,Devin 随即回复该评论。如需加以限制,组织管理员可在 Settings > Devin > Pull requests 中开启 Require @Devin to respond。启用该设置后,只有以 @Devin 或独立单词 Devin 开头的评论 (例如 Devin fix this) 才会唤醒 Devin 并得到回复 (也接受 devinai 前缀) 。匹配时不区分大小写。无论该设置如何,包含 (aside) 或 !aside 以及以 aside 开头的评论都会被忽略,因此你可以在不唤醒 Devin 的情况下讨论该 MR。若未配置 webhook,MR comment不会实时传递给 会话;但只要你在 会话 中直接指出,Devin 仍然可以处理这些评论。

最佳实践

  • 为 Devin 创建独立的 GitLab 账户
  • 为 main/master 分支启用分支保护
  • 配置 webhook,以便接收实时事件通知

支持

  1. 在 app.devin.ai/settings/support 创建一个与我们团队的 Slack Connect 频道
  2. 在提交问题时共享会话链接并提供截图