Skip to main content
Devin 的 API 功能强大,在继续阅读本指南之前,请先阅读以下文章。

  1. 流程概览

  1. 创建 Pull Request:向仓库提交一个包含更改的 Pull Request (PR) ,这些更改可能包含由代码扫描工具识别出的问题。
  2. 触发 GitHub Action:PR 被创建后,会自动触发一个 GitHub Action 工作流。
  3. GitHub Action 调用 Devin API:GitHub Action 向 Devin API 发送请求,并将识别出的问题传递给 Devin 以进行自动修复。
  4. 初始化 Devin 会话:一个 Devin 会话被创建并启动,接收问题的上下文信息,并基于提供的数据尝试解决该问题。
  5. Devin 提交供人工审核的 PR:问题解决后,Devin 生成一个包含建议更改的 PR,并提交给人工进行审核。

  1. 实现该目标的步骤

  1. 配置 GitLab 环境以保存所需的 secrets :
    • 配置 GitLab 环境,以安全存储与 Devin 的 API 和其他集成工具交互所需的 secrets (例如身份验证令牌和配置密钥) 。
完成这些步骤后,你的流水线就可以通过 Devin 的 API 自动解决问题,从而加快处理速度并减少人工干预。
  1. 测试集成
完成设置后,你可以通过手动触发一次 GitLab Action 来测试集成。这样可以验证该 Action 是否正确调用 Devin API 并解决已识别的问题。
  1. 查看 Devin 会话页面
在触发 GitLab 构建并由 Devin 处理完问题之后,你可以在 Devin 会话页面查看状态和结果。此页面会提供有关已解决问题和建议变更的详细信息。 如前所述,从 SonarQube 所需的值为: 要配置此集成,你需要从你的 SonarQube 实例中获取以下三个值: 你将需要从 SonarQube 获取 three_values:{SONAR_TOKEN, SONAR_ORG, SONAR_PROJECT_KEY} 一旦你获得了所有必需的值,就可以开始配置 GitLab Action。
这里假设你有一个本地的 SonarCloud 属性文件 sonar-project.properties,其中包含如下配置:
GitLab Action 的源代码如下所示
提醒一下,devin_remediation.py 文件如下:
该脚本使用 v3 API。DEVIN_API_KEY 是一个服务用户的 API 密钥,DEVIN_ORG_ID 是运行这些会话的组织的 ID。完成任务的会话会报告 status: "running" 和 status_detail: "finished";waiting_for_user、waiting_for_approval、suspended 和 error 则需要人工介入。完整取值列表请参见获取会话。
为确保 GitLab Action 能正确设置环境变量,请将这些变量添加到 GitLab CI/CD Variables 中。 找到对应的设置位置可能有点麻烦。进入 Settings > CI/CD,展开 Variables,然后在 Project variables 下添加 SONAR_TOKEN、SONAR_ORG、DEVIN_API_KEY 和 DEVIN_ORG_ID。变量名称必须与上面流水线配置中引用的名称一致。
SonarQube
如果你使用自托管的 GitLab,那么唯一的区别是: 配置完成后,你可以查看 GitLab Action 的执行情况。如果运行成功,它将显示如下:
SonarQube
你可以在 会话 页面 (app.devin.ai/sessions) 查看该作业创建的 Devin 会话。
SonarQube
完成后,Devin 会自动创建 Pull Request。GitLab 用户请参阅相关指南。