Devin の API を用いたコード Issue の自動解決
- プロセス概要
- Pull Request が作成される: コードスキャンツールによって問題が検出される可能性のある変更を含む Pull Request (PR) がリポジトリに送信されます。
- GitHub Action がトリガーされる: PR の作成をきっかけに、GitHub Action のワークフローが自動的に起動します。
- GitHub Action が Devin API を呼び出す: GitHub Action は Devin API にリクエストを送り、検出された問題を自動解決のために渡します。
- Devin セッションが初期化される: Devin セッションが立ち上がり、問題のコンテキストを受け取り、提供されたデータに基づいて解決を試みます。
- Devin が人間によるレビュー用の PR を提案する: 問題が解決されると、Devin は提案された変更を含む PR を生成し、人間によるレビューのために送信します。
- これを実現するための手順
-
CI および API 連携用に SonarQube を構成する:
- SonarQube が継続的インテグレーション (CI) と API 連携をサポートするように構成されていることを確認してください。API アクセス用に SonarQube をセットアップしたくない場合は、認証にクッキーを使用できます。このセットアップの詳細はこちら。
-
必要なシークレットを保持する GitHub 環境を構成する:
- Devin の API や他の連携ツールとやり取りするために必要な、認証トークンや設定キーなどのシークレットを安全に保存できるよう、GitHub 環境をセットアップします。
- 統合をテストする
- Devin Sessions ページを表示する
統合を構成するには、SonarQube インスタンスから次の 3 つの値を取得する必要があります。 SonarQube からは 3 つの値が必要です:
- 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 は人による対応が必要です。値の全一覧については セッションを取得する を参照してください。secrets.* の参照と一致している必要があります。




