为什么要将 Devin 与 Azure DevOps 集成?
先决条件
-
为 Devin 创建专用的 Azure DevOps 用户 - 专门为 Devin 创建一个新的 Azure DevOps 帐户(例如:
[email protected])。这个专用服务帐户能够实现更清晰的访问管理并提供完整的审计记录。 - 为 Devin 用户授予 AAD 全局管理员权限 - 新建的 Devin 服务帐户必须具备 Azure Active Directory (AAD) 全局管理员权限。除非由全局管理员授予租户级别的同意,否则 Microsoft 会限制第三方应用的访问。
-
为连接流程做好准备 - 要完成集成,你需要确保:
- 使用你的个人帐户登录 Devin
- 使用 Devin 服务帐户(具有 AAD 全局管理员权限的新帐户)登录 Azure DevOps
在集成设置过程中,两个浏览器会话都必须保持活动状态——你的 Devin 帐户用于发起连接,而 Azure DevOps 中的 Devin 服务帐户用于授权 OAuth 同意。
身份验证与权限
RBAC 和权限模型
- 会创建一个连接记录,其中包含加密的刷新令牌,并关联到用户身份
- Devin 会生成权限记录,用于定义哪些组织、项目和代码仓库可访问
- 在运行时,会对所有代码仓库执行检查,并与权限列表进行比对,以确保访问边界得到严格遵守
Azure DevOps 层级结构
配置集成
-
登录两个账户:
- 在 app.devin.ai 登录你的 Devin 账户
- 在单独的浏览器或隐身窗口中,使用 Devin 服务账户(具有 AAD 全局管理员权限的账户)登录 Azure DevOps
- 在你的 Devin Enterprise 账户中,前往 Settings > Enterprise Settings > Integrations

- 进入 Integrations 页面后,点击 Connect to Azure DevOps 按钮。

- 这会打开一个新的浏览器标签页,要求你授予 Devin 访问你的 Azure DevOps 组织的权限。请确保你使用 Devin 服务账户登录(具有 AAD 全局管理员权限的账户)。

- 授予权限后,你会在 Enterprise Settings 的 Integrations 页面上看到与你的 Azure DevOps 的集成,以及已连接的代码仓库。

- 现在 Devin 已经可以访问你的 Azure DevOps,你可以为 Enterprise 账户中的任意或所有子组织(Sub-Organizations)授予权限。为此,在 Azure DevOps 集成中选择 Git Permissions,选择一个子组织(Sub-Organization),并在 Group 或 Repository 级别授予权限。

- 对每个已被授予权限的组织,前往 Devin’s Settings > Devin’s Machine,点击 + Repository,将这些代码仓库集成到 Devin’s Machine 中。
Devin 可以访问的内容
| 功能 | 说明 |
|---|---|
| 列出存储库 | 查看可用存储库及其元数据 |
| 查看分支 | 查看分支信息和提交历史 |
| 创建拉取请求(PR) | 为代码更改创建新的 PR |
| 查看拉取请求(PR) | 查看 PR 的事件、评论和状态 |
| 推送代码 | 将新分支和提交推送到存储库 |
Devin 无法访问的内容
- 工作项(看板)
- 流水线或构建
- 测试计划
- 制品
- Wiki
- 服务连接
如果贵组织将来需要 Devin 支持上述这些额外的功能/领域,将需要更广泛的 OAuth 权限范围以及新的提供方逻辑。请联系 [email protected] 以讨论您的需求。
安全注意事项
- OAuth 提供能力,RBAC 划定边界 - OAuth 赋予访问 Azure DevOps 的技术能力,但通过额外一层 Git 权限控制来约束实际访问边界
- 仅限显式授权访问 - Devin 不会访问任何未在 Enterprise UI 中显式授予访问权限的代码仓库或项目
- 加密凭证 - 所有 refresh token 都会被加密并安全存储
- 审计记录 - 使用专用服务账户可以更轻松地在 Azure DevOps 审计日志中追踪 Devin 的活动
- 遵守分支策略 - Devin 提交的 PR 与任何其他贡献者一样,必须遵守相同的分支策略和代码审查要求
最佳实践
- 使用专用的 Devin 服务账户 - 始终使用专门为 Devin 创建的 Azure DevOps 账户,而不是使用个人账户进行连接
- 启用分支策略 - 在 Azure DevOps 中设置分支策略,确保所有更改在合并之前都经过适当的审核流程
- 使用仓库级权限 - 仅为 Devin 授予其所需的特定代码仓库的访问权限,而不是整个组织范围的访问权限
- 监控访问日志 - 定期查看 Azure DevOps 审计日志,以了解 Devin 的活动
- 记录你的设置 - 在内部文档中记录 Devin 拥有哪些代码仓库的访问权限以及相应原因
如果你的 Microsoft Entra ID 与组织的 HRIS(Human Resources Information System,人力资源信息系统)集成,为完成 Azure DevOps 集成可能还需要执行额外的配置步骤。请联系 Devin 支持团队 以获取高级配置方面的协助。
故障排查
- 验证 Devin 服务账号是否具有 AAD 全局管理员权限
- 检查你的 Azure AD 租户是否允许第三方应用授权
- 在完成 OAuth 流程时,确保你是使用 Devin 服务账号(而不是个人账号)登录 Azure DevOps
- 验证 Devin 服务账号是否对 Azure DevOps 中的代码库具有访问权限
- 检查是否已在 Devin 的 Enterprise 设置中授予代码库权限
- 确认这些代码库已经添加到 Devin 的 Machine 中
- 确认 Devin 服务账号在目标代码库上具有贡献者权限
- 检查分支策略是否没有阻止 PR 创建
- 验证目标分支是否存在且可访问
