🔥

Codex CLI+GitHub ActionsでAI駆動開発を自動化する

に公開

初めまして。株式会社CAENの大森と申します。
普段はAI駆動開発を活用して、個人開発を行っています。

AI駆動開発では、レビュー依頼や修正確認にかかる時間が課題になることが多いのではないでしょうか。
私自身も、レビューを待つ時間やコメント入力の手間が積み重なり、AIの速さを十分に活かしきれないと感じていました。

この問題を解決するために、「人が触る部分を最小限にしてAIが回る開発ループ」を構築しました。
本記事では、その仕組みを構成する3つの自動化手法と、具体的な設定方法を紹介します。

従来のワークフロー(手動)

  1. コードを書いてプルリクエスト(PR)を作成
  2. コメント欄に @codex review と手で入力してAIにレビューを依頼
  3. Codexレビューが完了。GitHub PRを見に行ってレビュー完了を知覚
  4. Codexのレビュー結果を読み、修正して再度プッシュ
  5. 再レビューを依頼するために、もう一度 @codex review とコメント

👉 毎回、レビュー依頼・確認・再依頼を人が行う必要がある... 😭

本記事のワークフロー(自動化後)

  1. コードを書いてプルリクエスト(PR)を作成
  2. コメント欄に@codex reviewと手で入力してAIにレビューを依頼
    自動で @codex review が投稿される
  3. Codexレビューが完了。GitHub PRを見に行ってレビュー完了を知覚
    自動でレビュー完了がメール通知
  4. Codexのレビュー結果を読み、修正して再度プッシュ
    自動でAIが修正〜コミット〜プッシュを行う
  5. 再レビューを依頼するために、もう一度@codex reviewとコメント
    AIがプッシュ時に@codex reviewをコメントする

👉 人が行っていたレビュー依頼・確認・再依頼がすべて自動化された! 🙌

このように、手動で行っていた一連の操作を自動化することで、レビューサイクルを途切れさせずに回せるようになります
この自動化を実現しているのが、次の3つの手法です。

  • ① PR作成〜レビューの自動化:GitHub ActionsでPR作成時に自動で@codex reviewをコメント
  • ② メールで通知を受け取る:レビュー完了を即座に把握できる仕組み
  • ③ 修正〜再レビューの自動化:GitHub MCPを活用してCodex CLIに一連の処理を自動実行させる

ここから、それぞれの具体的な設定方法を説明します。

1. ① PR作成〜レビューの自動化

@codex reviewを毎回手で入力する作業は小さな負担ですが、開発のたびに繰り返すことで全体の速度を下げてしまいます。
これを解消するため、GitHub Actions の PR作成イベントを利用して、自動的に「@codex review」をコメントするワークフローを設定します。

1-1. 準備

1-1-1. GitHubのパーソナルアクセストークンを取得

  1. GitHubにログインし、右上のプロフィールアイコンをクリックして「Settings(設定)」を選択。
  2. 左側のサイドバーから「Developer settings(開発者設定)」をクリック。
  3. Personal access tokens(個人用アクセス トークン)」を選択し、「Tokens (classic)」をクリック。
  4. Generate new token(新しいトークンの生成)」をクリック。
  5. 以下の設定を行う:
    • Note: トークンの用途が分かる説明を入力(例:「PR Auto Comment用」)
    • Expiration: 適切な有効期限を設定(セキュリティの観点から推奨)
    • Scopes: repo スコープにチェックを入れる(プライベートリポジトリを含むすべてのリポジトリへのフルアクセス)
  6. Generate token(トークンの生成)」をクリック。

1-1-2. リポジトリのSecretsに追加

  1. 該当リポジトリのページから「Settings(設定)」を選択。
  2. 左側のサイドバーから「Secrets and variables」→「Actions」をクリック。
  3. New repository secret」をクリック。
  4. Name: PERSONAL_ACCESS_TOKEN
  5. Secret: 先ほどコピーしたトークンを貼り付け。
  6. Add secret」をクリック。

1-2. 自動化のためのYAMLファイルをリポジトリに追加

以下の内容を .github/workflows/pr-auto-comment.yml として作成し、リポジトリの.github/workflows/ディレクトリに配置してください。

name: PR Auto Comment
on:
  pull_request:
    types: [opened]

permissions:
  issues: write
  pull-requests: write

jobs:
  comment:
    if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
    runs-on: ubuntu-latest
    steps:
      - uses: actions/github-script@v7
        with:
          github-token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
          script: |
            await github.rest.issues.createComment({
              owner: context.repo.owner,
              repo: context.repo.repo,
              issue_number: context.payload.pull_request.number,
              body: "@codex review",
            });

1-3. コミットと動作確認

ファイルをコミットすれば設定は完了です。以後、プルリクエスト(PR)を作成するだけで、自動で「@codex review」コメントが投稿され、Codexによるレビューが実行されます。

2. ② メールで通知を受け取る

レビュー完了をメールで通知してくれるように設定しておくと、完了に気づかず待ち続ける無駄を防げます。
以下では、GitHubでメール通知を有効にする手順を説明します。

2-1. GitHubでメール通知を有効にする手順

  1. GitHubの右上プロフィールアイコンをクリックし、「Settings(設定)」を選択。
  2. 左側サイドバーから「Notifications(通知)」をクリック。
  3. Email」セクションで、メール通知が有効になっていることを確認(デフォルトで有効になっている場合が多いです)。
  4. 下部の「Email notification preferences(メール通知の設定)」セクションで、以下の項目にチェックを入れる:
    • Pull request reviews(プルリクエストのレビュー)」
    • Pull request comments(プルリクエストのコメント)」

これで設定は完了です。
以後、レビューが終わると自動でメール通知が届き、PRページを定期的に確認する必要がなくなります

3. ③ 修正〜再レビューの自動化

PRを立てた後のレビューと修正の流れを自動化します。

Codexには、PRレビューに対して@codex fix commentsとコメントすると、CodexCloudが自動で修正を行いプッシュまで実行してくれる機能があります。

ただし、複数の解決アプローチにトレードオフがある場合は、非言語化された要件を理解している人間が最適な方法を選択する必要があります。
そのため、私はこの機能を小規模で単純なタスクのみに限定しています。

一方で、本格的なタスクでは、ローカルのIDEでCodex CLIにIssue内容を渡し、まず「そのIssueが妥当かどうか」を評価させ、妥当と判断された場合のみ、修正処理を実行します

そこに、GitHub MCPを組み合わせることで、
「Issue評価 → 修正 → コミット → プッシュ → レビュー依頼」までを一気通貫でCodex CLIに自動実行させることができます。

3-1. 準備

3-1-1. GitHubでアクセストークンを作成する

1-1-1の手順と同様に、GitHubでアクセストークンを作成します。

  1. GitHubにログインし、右上のプロフィールアイコンをクリックして「Settings(設定)」を選択。
  2. 左側のサイドバーから「Developer settings(開発者設定)」をクリック。
  3. Personal access tokens(個人用アクセス トークン)」を選択し、「Tokens (classic)」をクリック。
  4. Generate new token(新しいトークンの生成)」をクリック。
  5. 以下の設定を行う:
    • Note: トークンの用途が分かる説明を入力(例:「GitHub MCP用」)
    • Expiration: 適切な有効期限を設定(セキュリティの観点から推奨)
    • Scopes: repo スコープにチェックを入れる(プライベートリポジトリを含むすべてのリポジトリへのフルアクセス)。パブリックリポジトリだけで十分な場合はpublic_repoでも可。
  6. 「Generate token(トークンの生成)」をクリック。
  7. 生成されたトークンをコピーして安全な場所に保存。

3-1-2. Codex CLIにGitHub MCPを登録する

CodexCLIの設定ファイルはホームディレクトリ直下の ~/.codex/config.toml にあります。
その~/.codex/config.toml に以下の内容を追加します。
github_pat_xxxxxxxxxxxxxxxxxxxxxx の部分は、先ほど作成したアクセストークンに置き換えてください)

[mcp_servers.github]
command = "mcp-proxy"
args = ["--transport", "streamablehttp", "-H", "Authorization", "Bearer github_pat_xxxxxxxxxxxxxxxxxxxxxx", "https://api.githubcopilot.com/mcp/"]

3-1-3. 接続確認と利用開始

  1. ターミナルで codex と入力してCodex CLIを起動します。
  2. 起動中に、プロンプト画面で /mcp と入力すると、接続済みのMCPサーバー一覧が表示されます。ここに github(先ほど登録した名前)が「Ready」と表示されていれば成功です。
  3. 動作確認として、Codexのプロンプトで「このリポジトリのIssueを一覧してください」などと入力すると、GitHub MCP経由で操作が実行されます。

3-2. GitHub MCPを使用して修正〜再レビューを自動化する

実際のワークフローでのGitHub MCPの使用方法は以下の通りです。

まず、PRレビューで指摘された問題点をコピー&ペーストでCodex CLIに渡し、「その指摘が妥当であるか?」「どう解決すべきか?」の判断を仰ぎます。

実際に使用しているプロンプト例)

{レビュー内容のコピー}。このようなレビューがきています。妥当ですか?妥当であるならば実装アプローチを教えてください。
もしも、複数アプローチがある場合は、それぞれのアプローチについて、メリット・デメリット、
リスク、一般的なアプローチか?あなたは推奨するか?それぞれのアプローチはどういうケースに選ぶか、を教えてください。

そして、複数案提案された場合は、最も良いアプローチを選択して実装を依頼します

実際に使用しているプロンプト例)

では、アプローチXを実装してコミットして、npm run qualityを実行して問題がなければプッシュして、
問題があったら修正して再度コマンドを実行して、問題がなくなるまで修正してプッシュしてください。
プッシュしたら、GitHubのMCPを使って「@codex review」とコメントしてください。

これにより、「Issue評価 → 修正 → コミット → プッシュ → レビュー依頼」までを、Codexが自動で実行してくれます。

そして、レビューが完了したら②で設定したとおり、メールで通知が届きます
メールが届いたらPR状態を確認し、問題なければマージして次のタスクへ、もし問題があれば、再度③のワークフローを繰り返します。

まとめ

本記事では、CodexでのAI駆動開発を自動化・高速化するための3つの手法を説明しました。

  1. PR作成時のレビュー依頼の自動化:GitHub Actionsを使用してPR作成時に自動で@codex reviewをコメント
  2. メール通知の設定:レビュー完了を即座に知らせる仕組み
  3. 修正〜再レビューの自動化:GitHub MCPを活用してCodex CLIに一連の処理を自動実行させる

これらの手法を採用することで、人間が行わなくても良い単純操作を自動化させることができ、開発効率が上がります。AI駆動開発では人間の稼働が1番のボトルネックですので、人間の少しの効率化であっても、AI駆動開発全体では数倍の効率化に繋がります。

そして、空いた時間を有効活用することで、さらに開発効率が向上。
Git worktreeを使用して、別機能を実装しても良し、リファクタリングしても良し。
次の機能の要件ドキュメントを書いても良し。デバッグを見ながらUIUXを手直ししても良し。
そもそも他のプロジェクトを進めても良し。

限りある人間のリソースを有効活用し、効率的なAI駆動開発をしましょう!🔥

Discussion