Devin が Enable Auto Merge してくれない。
こんにちは、Sally 社 CTO の @aitaro です。 マーダーミステリーアプリ「ウズ」とマダミス制作ツール「ウズスタジオ」、マダミス情報サイト「マダミス.jp」を開発しています。
最近は UZU を使った新店舗である、 UZU TOKYO のシステム開発をメインで取り組んでいます。
はじめに
この記事では、AI エンジニアの Devin を活用する中で直面した、Enable Auto Merge が設定できない問題とその解決策について共有します。弊社では Devin を自立したエンジニアメンバーの一人として位置付けており、実プロダクト開発においてその運用方法の検証を進めています。
弊社の GitHub 運用
弊社の GitHub 運用では、PR 実装者がマージをする運用にしています。これは以下の理由によるものです:
- 責任の明確化: コードへの最終的な責任は PR 実装者が持つ
- 実装者の意図の尊重: 実装者が最もコードの意図を理解している
- 意図しないデプロイの予防: レビュー後、実装者がタイミングを見てマージできる
この運用により、実装者が自分のコードに対してオーナーシップを持ち、品質への責任を持つ文化が育まれています。
Devin を自立したエンジニアとして扱いたい
弊社では Devin を単なる AI ツールではなく、自立したエンジニアメンバーの一人として位置付けています。他のエンジニアと同じように、Devin にも自分で PR をマージしてほしいと考えており、人間はレビューだけで済む状態が理想です。
そこで、Devin が作成した PR も自動でマージできる仕組みを用意することにしました。
Devin が Enable Auto Merge してくれない問題
しかし、実際に運用してみると、どう指示しても絶対に Enable Auto Merge を設定してくれないという問題に直面しました。
Slack や PR 上で Devin への指示を行っても、プロジェクト固有のルール として、Devin の Knowledge への追加を行なっても全く実行されませんでした。
以下は試行錯誤したものの、Devin が自力で Auto Merge できずに、人に Auto Merge をお願いしている様子です。
推測される原因
詳しくは検証していませんが、おそらく GitHub の Devin.ai Integration の権限の問題と思われます。おそらく Devin が利用している GitHub App の権限では Auto Merge の設定ができないため、現状では Devin 自身での対応は難しそうです。
Devin の新機能で Timelapse 機能が出たので、今ならコマンド実行時の具体的なエラーを見に行くことで原因を特定できるかもしれません。
GitHub Actions での解決策
システムは疎結合であるべきという観点から Devin 側の問題は Devin 側で解決したいと考えていたのですが、前述の通り Devin 側からはなすすべがなさそうでした。
したがって少しハック的ですが、GitHub Actions で全 Approve をもらった Devin の PR は Auto Merge をつけるように設定しました。
name: Auto Merge Devin AI PR
on:
pull_request_review:
types: [submitted]
jobs:
auto-merge:
if: startsWith(github.event.pull_request.user.login, 'devin-ai-integration[bot]') && github.event.review.state == 'approved'
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Enable auto-merge via gh
run: gh pr merge ${{ github.event.pull_request.number }} --auto --squash
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
実装のポイント
-
トリガー条件:
pull_request_review
のsubmitted
イベントを監視 -
条件判定:
- PR 作成者が
devin-ai-integration[bot]
で始まるかチェック - レビューの状態が
approved
であることを確認
- PR 作成者が
- Auto Merge の設定: GitHub CLI を使用して Auto Merge を有効化
この Actions により、Devin の PR が承認されると自動的に Auto Merge が設定され、すべてのチェックが通った時点で自動的にマージされるようになりました。
まとめ
Devin を自立したエンジニアメンバーとして運用する中で、Enable Auto Merge の問題に直面しましたが、GitHub Actions を活用することで解決できました。
この対応により、以下のメリットが得られました:
- Devin の PR も他のエンジニアと同様の運用フローに乗せることができた
- レビュアーは承認後、マージを待つ必要がなくなった
- Devin の権限不足を GitHub Actions で補完できることを実証できた
これから数年で実装の主体はエージェント型 AI に変わることは確定的であり、今後のプロダクト開発フローは、エージェント型 AI が代替する前提で構築していく必要があります。
弊社でも Devin をより効果的に活用できるよう、今後も工夫を重ねていきます。
Discussion