Skip to main content

概述

Devin 支持通过以下两种方式连接到 GitHub Enterprise Server (GHES) 和启用数据驻留的 GitHub Enterprise Cloud (GHEC):
  1. GitHub App (推荐) — 在你的 GHES 或 GHEC 实例中注册并安装专用的 GitHub App。此方式可简化设置流程,且无需管理个人访问令牌。
  2. 个人访问令牌 (PAT) — 创建服务账户并生成细粒度个人访问令牌。此方法适用于所有 GHES 版本。
GitHub App 集成目前仅限少量用户使用。如需开始使用,请联系你的 Cognition 代表。

GitHub App 设置

GitHub App 设置分为三个步骤:
  1. App 注册 — 在你的 GHES 或 GHEC 实例上注册一个 GitHub App。每个实例只需注册一个 App。
  2. App 配置 — 在你的 GHES 或 GHEC 实例上配置已注册的 App (例如,将其设为公开,并禁用令牌过期) 。
  3. App 安装 — 在你希望 Devin 访问的每个 GitHub 组织中安装已注册的 App。每个组织都需要安装一次。

前提条件

  • 拥有 管理 Git 集成 企业权限的 Devin 用户 (参见 自定义角色与 RBAC)
  • 对将注册该 App 的 GitHub 组织拥有所有者或管理员访问权限

步骤 1:注册 GitHub App

  1. 在你的 Devin 账户中,前往 企业设置 → 连接 → GitHub。
  2. 展开 Advanced 部分,显示 GitHub Enterprise 选项。
GitHub Enterprise 高级部分
  1. 点击 Register App。
  2. 在弹出的模态窗口中,输入你的 GHES 或 GHEC 实例的 hostname,以及要注册该 App 的 organization。
Register App 模态窗口
  1. 你将被重定向到 GitHub。点击 Register App 完成注册。
GitHub 注册页面
  1. 跳转回 Devin 后,该 GitHub App 即已注册到你的 GitHub 组织中。

步骤 2:配置 GitHub App

注册完成后,在你的 GHES 或 GHEC 实例上配置该 App:
  1. 在你的 GHES 或 GHEC 实例中,前往注册时指定的 GitHub 组织。
  2. 依次进入 Settings → Developer Settings → GitHub Apps,然后选择 Devin App。
Developer Settings - GitHub Apps
  1. 在 Advanced 部分的 Danger zone 下,点击 Make public。这样,该 App 就可以安装到同一实例中的其他组织。
  2. 前往 Optional features 部分,并关闭 User-to-server token expiration。这样可防止访问令牌过期,避免用户需要定期重新授权该 App。
User-to-server token expiration setting

步骤 3:安装 GitHub App

  1. 在你的 Devin 账户中,前往 企业设置 → 连接 → GitHub。
  2. 展开 Advanced 部分,然后点击 安装应用。
  3. 在模态窗口中,选择在你的 GHES 或 GHEC 实例下注册的 GitHub App。
安装应用模态窗口
  1. 你将被重定向到 GitHub,在那里可以选择一个 GitHub 组织,并选择要授权 Devin 访问的仓库。我们建议授权访问 所有仓库。
  2. 完成安装后,你将被重定向回 Devin。随后,设置 → 连接 → GitHub 中会显示一条新的 Git 连接。
如需连接其他 GitHub 组织,请对每个组织重复此步骤。

故障排查

如果你在注册或安装 GitHub App 的过程中遇到问题,请联系你的 Cognition 对接人,或发送邮件至 enterprise@cognition.ai。

个人访问令牌 设置

将 Devin 集成到你的 GitHub 账户中,可以让 Devin 访问你的代码仓库并创建拉取请求 (pull request) 。这样 Devin 就能成为你工程团队中的真正协作者。

为 Devin 创建服务账号

  1. 在你的 GitHub Enterprise 中创建一个新的 GitHub 账号供 Devin 使用。这样可以确保 Devin 的所有访问和使用情况都能被正确跟踪和管理。
  2. 将新创建的服务账号作为 Member 添加到所有相关的 GitHub 组织中。确认该账号可以访问所有预期由 Devin 访问的代码仓库。

为 Devin 生成个人访问令牌 (Personal Access Token)

  1. 使用服务账号登录后,点击右上角的个人头像,然后点击 Settings (设置) 。
  2. 在左侧边栏中,点击 Developer settings (开发者设置) 。
  3. 在左侧边栏中,在 Personal access tokens (个人访问令牌) 下,点击 Fine-grained tokens (细粒度令牌) 。
  4. 点击 Generate new token (生成新令牌) 。
  5. 填写 Token name (令牌名称) 和 Expiration (过期时间) 。
    注意: 当令牌过期时,Devin 将立即失去对 GitHub 的所有访问权限,需要创建一个新的令牌。
  6. 在 Resource owner (资源所有者) 下,选择正确的组织。
If you’re not seeing the correct organization under “Resource owner”, make sure that the enterprise and organization have enabled the use of fine-grained personal access tokens. 如果你在 “Resource owner (资源所有者) ” 下未看到正确的组织,请确认企业和组织均已启用细粒度个人访问令牌的使用。

在 Enterprise 设置中启用

只有 Enterprise 管理员 (Enterprise Admin) 可以更新这些设置。请确保在特定组织设置中也启用了 personal access tokens (个人访问令牌) 。
  1. 在 GitHub Enterprise Server 右上角点击你的个人头像,然后点击 Enterprise settings (Enterprise 设置) 。
  2. 在页面顶部,点击 Policies (策略) 。
  3. 在 Policies (策略) 下,点击 Personal access tokens (个人访问令牌) 。
  4. 选择 Fine-grained tokens (细粒度令牌) 选项卡。
  5. 在 Fine-grained personal access tokens (细粒度个人访问令牌) 下启用访问。
  6. 点击 Save (保存) 。

在 Organization 设置中启用

只有 Organization 管理员 (Organization Admin) 可以更新这些设置。请确保在 Enterprise 设置中也启用了 personal access tokens (个人访问令牌) 。
  1. 在 GitHub 右上角点击你的个人头像,然后点击 Organizations (组织) 。
  2. 在目标组织旁边点击 Settings (设置) 。
  3. 在左侧边栏中,在 Personal access tokens (个人访问令牌) 下,点击 Settings (设置) 。
  4. 选择 Fine-grained tokens (细粒度令牌) 选项卡。
  5. 在 Fine-grained personal access tokens (细粒度个人访问令牌) 下,为你的组织启用访问。
  6. 点击 Save (保存) 。
  1. 在 Repository access (代码仓库访问) 下,选择你希望 Devin 使用的仓库。令牌始终包含对 GitHub 上所有公共仓库的只读访问权限。
  2. 确保令牌具有以下 Devin 正常工作所需的权限:
根据你希望 Devin 执行的工作,授予更多权限有助于 Devin 更好地与你的团队协作。
  1. 点击 Generate Token (生成令牌) 并保存显示的令牌。
    注意: 根据你的 GitHub 设置,可能需要管理员审批。
  2. 为验证该令牌是否具有所有必要的访问和权限,请在本地机器上创建并推送一个测试分支到该组织中的某个仓库。
  3. 令牌生成并测试完成后,请联系你在 Cognition 的对接人以完成配置流程。如果你当前并未直接与我们的团队合作,请发送邮件至 enterprise@cognition.ai 与我们联系。

在本地验证 PAT 权限

在将该令牌提供给 Cognition 之前,请先通过推送测试分支来确认它是否具有正确的权限:
预期结果: push 和 PR 创建应在没有身份验证错误的情况下成功。如果 push 失败,请检查该 token 是否具有 “Contents: Read and write” 权限。如果 PR 创建失败,请检查该 token 是否具有 “Pull requests: Read and write” 权限。

配合 GitHub 集成使用 Devin

现在 GitHub 已完成集成,你可以配置哪些 Devin 子组织可以访问各个代码仓库 (参见代码仓库权限) 。 集成完成后,你可以前往 Devin Web 应用程序,现在你已经可以在提示中使用 @ 提及任意代码仓库了! 如果你是第一次使用某个代码仓库,我们建议你先在入门流程中完成开发环境设置,以确保 Devin 拥有关于如何使用你的代码库的最准确、最新的信息。
只要会话尚未被归档,Devin 会自动回复任何 PR 评论

安全注意事项

以下是关于 Devin 在 GitHub 中权限的一些补充信息:
  • 我们建议在 master 分支上启用分支保护,以确保在 Devin 合并任何变更之前,所有检查都已执行并通过。
  • 如果 Devin 已连接到你组织的 GitHub 组织账号,那么对于任何同时拥有该 GitHub 组织和 Devin 组织访问权限的用户,Devin 将具备与其相同级别的权限。
  • Devin 不会继承或仿照正在与其进行会话的用户权限,而是始终保留在组织级别授予它的权限。
  • Devin 无法在你的 GitHub 账号中创建新的代码仓库。