将 Devin API key 存储到 GitHub 中
该工作流会调用 Devin 的 v3 API,以编程方式创建会话。先创建一个服务用户,并将其 token 存储为 GitHub Actions 机密:
- 前往 app.devin.ai > Settings > Service Users,创建一个具有
ManageOrgSessions权限的服务用户 - 复制创建后显示的 API token —— 它只会显示一次
- 在你的 GitHub 仓库中,导航到 Settings > Secrets and variables > Actions
- 新增两个机密:
DEVIN_API_KEY(该 token)和DEVIN_ORG_ID(你的组织 ID —— 通过使用该 token 调用GET https://api.devin.ai/v3/enterprise/organizations获取)
添加工作流程文件
创建 将
.github/workflows/devin-ci-fix.yml。该工作流会在你现有的 CI 工作流执行失败时触发,提取失败的作业名称,并调用 Devin API 来启动一次修复会话:workflows 数组中的 "CI" 替换为你现有 CI 工作流文件中的精确 name: 值(例如 "Tests"、"Build & Test")。在请求体中使用 tags 字段(例如 "tags": ["ci-fix", "pr-312"])来跟踪哪些 CI 失败已经触发过会话,以避免重复触发。当 CI 失败时会发生什么
当某个 PR 的 CI 运行失败时,Action 会提取失败详情,并将其作为会话提示传递给 Devin。下面是一个典型的自动修复流程:
- 读取 CI 日志 —— Devin 打开本次运行的 URL,并从失败的作业中解析错误输出、堆栈跟踪和测试结果
- 将错误追溯到代码 —— 在 PR 分支上定位相关文件与行号(例如:
UserList.tsx:34),并阅读其周围代码和最近的 diff - 推送修复 —— 直接向 PR 分支提交有针对性的变更,从而自动重新触发 CI
- 在 PR 上评论 —— 发布一条评论,总结根本原因以及修改内容
