跳转到主要内容

概览

Devin 通过 Microsoft Entra 服务主体连接到 Azure DevOps。你的 Admin 会在你的租户中批准由 Cognition 发布的 Cognition Azure DevOps Service Principal 应用,这会创建一个服务主体,随后你再将其添加到 Azure DevOps 组织中,并授予你所需的权限。
  • 在 Entra 批准期间,仅会请求 User.Read——这仅用于确认身份
  • 仅完成 Entra 批准并不会授予对代码仓库或代码的访问权限
  • 所有代码仓库访问权限都由你在 Azure DevOps 中分配的权限控制
与其他一些 SCM 集成不同,Azure DevOps 不会以相同的方式显示第三方应用。所有连接管理都在 Devin 的 Settings > 企业设置 > 集成 中完成。

前提条件

在设置 Azure DevOps 集成之前,请确保你具备:
  1. 拥有管理集成权限的 Devin Enterprise 账户
  2. 一位可为应用授予管理员同意的 Microsoft Entra 管理员
  3. 一位可添加用户并分配权限的 Azure DevOps 组织管理员

设置集成

  1. app.devin.ai 登录你的 Devin 账户。
  2. 在另一个浏览器或无痕窗口中登录 Azure DevOps (第 6 步需要用到) 。
  3. 在你的 Devin Enterprise 账户中,前往 设置 > 企业设置 > 集成,然后选择 Azure DevOps
  4. 打开 连接 按钮的下拉菜单,然后选择 使用服务主体连接
使用服务主体连接
  1. 你会被重定向到 Microsoft,向 Devin 授予访问你的租户的权限。批准后,你会返回 Devin 中的 Azure DevOps 集成页面,此时页面会显示 使用服务主体添加组织 部分。
    • 批准后会在你的 Microsoft Entra 租户中创建一个服务主体
    • 此步骤仅请求 User.Read,不会授予对代码仓库的访问权限
  2. 在 Azure DevOps 中,前往 组织设置 > 用户
    • 点击 添加用户,并添加该服务主体 (Cognition Azure DevOps Service Principal)
    • 访问级别选择 Basic (Stakeholder 不够,API 需要 Basic)
    • 将其添加到你希望 Devin 访问的所有项目中
    • 将该服务主体分配到相关的 Azure DevOps 中 (通常为 Project Contributors)
  3. 返回 Devin,在 Azure DevOps 集成页面的 使用服务主体添加组织 部分中,输入上一步中的 Azure DevOps 组织名称,然后点击 添加
  4. 在 Devin 中,在你的 Azure DevOps 集成里选择 Git Permissions,选择一个子组织,并在组级别或代码仓库级别授予权限。
Azure DevOps Git Permissions
  1. 对于每个已授予权限的组织,前往 Devin 的设置 > Devin’s Machine,点击 + Repository,并接入这些代码仓库。

Devin 可访问的内容

Devin 的 Azure DevOps 集成仅限于 Git 操作
能力说明
列出代码仓库查看可用代码仓库及其元数据
读取分支访问分支信息和提交历史
创建拉取请求为代码修改发起新的 PR
查看拉取请求访问 PR 事件、评论和状态
推送代码将新分支和提交推送到代码仓库
Devin 无法访问工作项、管道、构建、测试计划、构件、Wiki 或服务连接。
如果你的组织今后需要 Devin 支持更多 Azure DevOps 领域,请联系 enterprise@cognition.ai 与我们讨论你的需求。

安全注意事项

  • 最小 Entra 权限 — 仅请求 User.Read。不要求对整个目录的读取权限、查看组成员关系的权限或管理控制权限。
  • 显式授权 — 仅获得 Entra 批准并不会授予任何 Azure DevOps 访问权限。所有代码仓库访问权限都必须由你的 Azure DevOps Admin 显式分配。
  • 加密凭据 — 所有令牌都会加密并安全存储。
  • 范围限定访问 — 可通过 Devin 的 Enterprise UI 将权限限制在特定项目、代码仓库和操作范围内。
  • 可审计性 — 活动会记录在 Entra 登录日志和 Azure DevOps 审计日志中。
  • 遵循分支策略 — Devin 的 PR 需遵循与其他任何贡献者相同的分支策略和评审要求。

最佳实践

  • 使用代码仓库级权限 — 仅向 Devin 授予其所需的特定代码仓库和项目访问权限,而非整个组织范围的访问权限。
  • 启用分支策略 — 在 Azure DevOps 中设置分支策略,确保所有更改在合并前都经过适当的审查。
  • 监控审计日志 — 定期查看 Azure DevOps 审计日志和 Entra 登录日志,监控服务主体的活动。

故障排查

管理员同意失败:
  • 验证执行批准的用户是否有权在你的 Entra 租户中为应用授予管理员同意
  • 如果你的租户限制应用同意,可能需要由全局管理员或云应用程序管理员来授予同意
在 Azure DevOps 中看不到服务主体:
  • 在 Entra 门户的 Enterprise Applications 下验证管理员同意是否已成功完成 (查找 Cognition Azure DevOps Service Principal)
  • 确保该服务主体已在 Organization Settings > Users 下明确添加到你的 Azure DevOps 组织中
Conditional Access / MFA 阻止访问:
  • 如果服务主体受强制执行 MFA 的 Conditional Access 策略约束,令牌刷新会静默失败。请为该服务主体添加针对 Devin 应用的 Conditional Access 排除项。
Devin 看不到我的代码仓库:
  • 验证该服务主体是否已在 Organization Settings > Users 下添加到 Azure DevOps 组织中
  • 确认访问级别设置为 Basic (Stakeholder 不足以进行 API 访问)
  • 检查是否已在 Devin 的企业设置中授予代码仓库权限
  • 确保这些代码仓库已添加到 Devin’s Machine
创建拉取请求失败:
  • 确认该服务主体在目标代码仓库上具有 Contributor 权限
  • 检查分支策略是否阻止创建 PR
  • 验证目标分支存在且可访问

网络设置

如果你的 Azure DevOps 实例启用了 IP 过滤,你需要将 Devin 的 IP 地址加入白名单。 如需查看最新列表,请参阅我们的 IP 白名单文档