Skip to main content

为 Devin 提供凭证

Devin 可以使用它自己的登录凭据,在 Browser 中或通过命令行访问需要身份验证的平台。我们建议在每个它需要访问的服务上为 Devin 单独创建一个账户 (例如 devin@company.com) 。然后,你可以将 Devin 的用户名和密码作为 Secrets 保存在你的账户中,以便它在之后的会话中可以自动登录。 添加 Secrets 通常通过 Secrets 页面 完成。该页面对组织级别的 Secrets 尤其重要。关于仓库级或会话级的 Secrets,请参见下面的章节。
Devin
在添加 Secret 时,你可以添加一个 Note,用于说明额外的上下文或使用该 Secret 的说明。使用这个字段向 Devin 以及你所在组织的其他成员传达有用的信息。示例备注包括:
  • 此 API key 只能用于我们的生产环境,不能在 staging 或 dev 环境中使用。
  • 用于我们在 us-west-2 的 AWS RDS 数据库
  • 这些凭证计划在 2025 年第三季度后弃用
  • 每 30 天自动过期一次——如果开始失效,请联系 SecOps 团队进行轮换
  • 此 API key 绑定到 devin@company.com 用户账户

持久化全局 secrets

Settings → Resources → Secrets 中添加的 secrets 会持久保留到后续会话中,并适用于整个组织。请注意,你在此处共享的任何 secrets,都可以在你所在组织中所有未来的 Devin 会话里被 Devin 使用。所有 secrets 在静态存储时均为加密状态。 请注意,你的组织中的所有成员都可以使用全局 secrets,但只有管理员可以查看或编辑现有 secrets。请务必只添加作用域专门限定在你的组织内、且可供所有成员使用的 secrets。

个人 secrets

除了组织级的 secrets 之外,你还可以创建个人 secrets,其作用域仅限于你自己的会话。个人 secrets 不会与你的组织中的其他成员共享。这对于与你的个人账户关联的凭据,或用于测试那些不应向更大范围团队公开的 secrets 非常有用。 要创建个人 secrets,请在 Secrets 页面 上添加新 secrets 时选择 Personal 作用域。个人 secrets 仅可在你创建的会话中访问,其他组织成员或管理员都无法看到。 当前提供以下几种 secrets 类型:
此类型最适合大多数只有单个值的通用 secrets。每个 Secret Name (也称为 Secret Key) 都关联一个 Secret Value。可存储在此处的 secrets 示例包括:
  • API 密钥
  • SSH Keys
  • 用户名或密码
  • Tokens
如果某个 secrets 需要包含多个值,请为每个值分别创建一个独立的 secrets。例如,你可以将 GITHUB_USERNAME 和 GITHUB_PASSWORD 分别存储为两个原始 secrets (Raw Secrets) 。关于将 API 密钥存储为多个原始 secrets 的示例,请参见 将 iOS 构建上传到 TestFlight
Cookies 用于“保存”你的认证状态;如果你已经登录某个站点,则将该站点的 Cookies 提供给 Devin,可以让 Devin 在访问同一站点时自动处于登录状态。请注意,有时仅依靠 Cookies 可能还不够,可能还需要额外的用户名或密码 secrets。例如,在 Amazon 上,Devin 可能在浏览或加购时已处于登录状态,但在结账时,Amazon 可能会要求额外一层密码确认。Cookies 会以 base64 编码的字符串形式存储,该字符串是一个以 ; 分隔的 JSON 数组,并采用标准 Chromium Cookie 格式。如果你需要手动编码 Cookies 而不是直接从 Chrome 导出,这一点非常重要。关于如何添加 Cookie secrets 的详细步骤,请参见 添加新的站点 Cookie
基于时间的一次性密码用于双因素认证 (2FA) 。Devin 可以存储 TOTP secrets,其行为类似于 Google Authenticator 或 Authy 中的 secrets。关于如何添加 TOTP secrets 的详细步骤,请参见 添加新的 TOTP
Devin 过去曾支持创建可以在单个 secrets 下管理多个键的键值 secrets。但该功能现已不再提供。我们建议不再创建键值 secrets,而是为每个字段分别创建多个原始 secrets。例如,与其创建一个用于 JIRA_LOGIN 的键值 secrets,不如创建两个原始 secrets:JIRA_USERNAME 和 JIRA_PASSWORD。

仓库级 Secrets

若要将 secrets 的作用域限定到特定代码仓库,请在该仓库的蓝图编辑器中添加:
  1. 前往 Settings > Environment > Blueprints 并选择该代码仓库。该代码仓库必须已包含在你的环境中。
  2. 打开 Secrets 选项卡。
  3. 点击 Create secret 添加单个 secret,或点击 Import secrets 一次性添加多个。
在同一选项卡中,你可以搜索、查看、编辑和删除该代码仓库的 secrets。管理代码仓库 secrets 需要 ManageOrgSecrets 权限;其他成员只能以只读方式查看列表。 代码仓库 secrets 仅对该代码仓库可用:在快照构建期间提供给它的蓝图步骤,在会话期间 Devin 于该仓库中工作时提供给 Devin。它们以加密形式存储,绝不会写入你的蓝图或快照。有关注入方式,请参阅蓝图参考中的 Secrets
不要将敏感值写入蓝图 YAML、setup 命令,或提交到代码仓库的 .env 文件中。请将它们存储在该代码仓库的 Secrets 选项卡中,并通过名称引用 (例如 $MY_SECRET) 。

会话级 secrets

在 Devin 工作过程中,它可能会在当前对话中请求你提供凭证 (API 密钥、登录信息等) ,如下所示:
Devin
当 Devin 以这种方式请求 secrets 时,这些 secrets 的作用域仅限于当前会话,不会保存到后续任何会话中。 另外,你也可以自行设置会话级 secrets:
Devin

使用 secrets

Devin 会将每个 secret 提供给需要它的特定命令和工具。在 Browser 中,Devin 会直接输入该值。对于 shell 命令,Devin 会在需要时将 secrets 绑定为环境变量。此规则适用于组织级、仓库级以及会话级 secrets。 secrets 不会被导出到每个 shell 中,因此脚本不应假设 $API_KEY 之类的变量已经设置好。如果某个脚本依赖某个 secret,请告诉 Devin 它读取的是哪个环境变量,Devin 会将其绑定到相关命令上。 Devin 会对文本进行一些转换,以确保你的 secrets 是合法的 ENV 变量:
  • 它会移除无效字符,将所有非字母、数字或下划线的字符替换为下划线。例如,名为 Abc%123 的 secret 会变为 ENV 变量 Abc_123
    • 如果你的 secret 名称以数字开头,Devin 会在名称开头添加一个下划线。例如,secret 123MYVAR 会变为 ENV 变量 _123MYVAR (已经以字母或下划线开头的名称不会被修改)
    • 如果你有两个同名的 secrets,Devin 会在末尾添加一个计数后缀。例如,如果你有两个名为 MY_SECRET 的 secrets,你最终会得到两个 ENV 变量:MY_SECRET 和 MY_SECRET_2,依此类推。
要添加站点 Cookie,请按照以下步骤操作:
  1. 像平时一样登录到你希望与 Devin 共享的账号。这将生成 cookie。
  2. 为了从浏览器存储中获取 cookie,请下载浏览器扩展程序 Share your cookies,并按照该扩展中的指引导出你的 cookies。你可能还需要测试:在另一个 Chrome 个人资料中导入该 cookie 后,是否能成功完成站点登录认证。
  3. 通过 Secrets 页面 将导出的 cookie 添加到 Devin 中。
  4. 当 Devin 使用该站点的 cookie 时,在导航到该站点时应会发现自己已经处于登录状态。可以让 Devin 试试看!
如果你没有使用 Chrome,或者需要手动编码 cookies,请注意 Devin 期望接收的 cookies 是:使用标准 Chromium cookie 格式的 JSON 对象,以 ; 分隔,并整体以 base64 字符串编码。

添加新的 TOTP

Devin 现在可以使用基于时间的一次性密码 (TOTP) 来处理双因素认证 (2FA) 。为此,你需要向 Devin 提供在为特定应用在 Devin 账户上设置 2FA 时生成的信息:
  1. 登录需要 2FA 的服务中的 Devin 账户。
  2. 前往账户安全设置,查找重新生成或查看二维码的选项。该选项可能被称为 Set up 或 Replace Authenticator。
  3. 如果应用允许,选择查看二维码的选项。
  4. 当二维码显示在屏幕上时,为其截屏。
  5. 前往 Devin’s Secrets,点击 “Add Secret” 按钮,将 secrets 类型更改为 “One-time Password”。输入一个便于识别的名称。点击数值输入框右上角的小二维码图标,并上传你的二维码截屏。
仅提供与专门为 Devin 使用而创建的账户相关联的 2FA 信息。我们不建议向 Devin 提供你个人账户的任何 2FA 信息。

TOTP 提示

  • 某些应用在启用 2FA 后,可能无法再查看现有的二维码。在这种情况下,只能重新生成二维码。
  • 请务必将此过程中提供的任何新备份代码保存在安全的地方。