使用 Devin API 的自动化问题解决
- 流程概览
- 创建 Pull Request:向代码仓库提交一个包含更改的 Pull Request (PR) ,这些更改中可能包含由代码扫描工具检测出的问题。
- 触发 GitHub Action:PR 创建后会自动触发一个 GitHub Action 工作流。
- GitHub Action 调用 Devin API:GitHub Action 向 Devin API 发送请求,将检测出的问题传递给 Devin 以进行自动修复。
- 初始化 Devin 会话:Devin 会话被启动,接收问题的上下文,并基于提供的数据尝试解决该问题。
- Devin 提交用于人工审核的 PR:问题解决后,Devin 生成一个包含建议修改的 PR,并将其提交以供人工审核。
- 完成此操作的步骤
-
为 CI 和 API 支持配置 SonarQube:
- 确保 SonarQube 已配置为支持持续集成 (CI) 和 API 集成。如果你不希望专门为 API 访问配置 SonarQube,可以通过 cookie 进行身份验证。在此了解有关该设置的更多信息。
-
配置 GitHub 环境以保存所需的机密信息:
- 设置 GitHub 环境,以安全存储与 Devin 的 API 和其他集成工具交互所需的机密信息,例如身份验证令牌和配置密钥。
- 测试集成
- 查看 Devin Sessions 页面
- 创建 SONAR_TOKEN:
- 点击 SonarQube 右上角的账户图标。
- 在下拉菜单中选择 Security。
- 在 Tokens 部分中,点击 Generate Tokens。
- 为令牌命名并点击 Generate。
- 复制生成的令牌,以便在 GitHub Actions 中使用。

- 创建 SONAR_PROJECT
- 在 SonarQube 中选择项目。
- 点击左下角的 Information。
- 向下滚动,找到 project key (项目键) 。

- 创建 SONAR_ORG
参考上面的步骤,在 SonarQube 中找到你的组织详情。
获取所有所需的值后,你就可以开始配置 GitHub Action 了。
这里假设你有一个本地的 SonarCloud 属性文件
sonar-project.properties,其中指定:该脚本使用 v3 API。
DEVIN_API_KEY 是服务用户的 API 密钥,DEVIN_ORG_ID 是会话运行所在组织的 ID。完成任务的会话会报告 status: "running" 和 status_detail: "finished";而 waiting_for_user、waiting_for_approval、suspended 和 error 则需要人工介入。完整取值列表请参见 Get session。secrets.* 引用一致。




