Skip to content

GitHub Actions での Gemini / Claude Code 連携の整備#42

Merged
fumikito merged 2 commits intomasterfrom
feature/issue-40-add-ai-review
Jan 8, 2026
Merged

GitHub Actions での Gemini / Claude Code 連携の整備#42
fumikito merged 2 commits intomasterfrom
feature/issue-40-add-ai-review

Conversation

@MarikoMorimoto
Copy link
Copy Markdown
Collaborator

@MarikoMorimoto MarikoMorimoto commented Dec 29, 2025

概要

GitHub Actions 上で Gemini と Claude Code を安全に利用できるよう、AI アシスタント用 Workflow の追加とガード追加、ならびに簡易ドキュメントの整備を行いました。

変更内容

  • Gemini 関連 Workflow の追加・設定
    • クイックスタート 後に調整を行いました。
    • ただし、環境情報を渡しても正しくそれらを受け取ってくれない問題が発生中で、公式のイシューにも登録されています。
      • これにより自動レビューがうまく動かない状態です
  • Claude Code 関連 Workflow の追加・設定
  • ↑についてのドキュメントを追加

関連

issue #40

@github-actions
Copy link
Copy Markdown
Contributor

🤖 こんにちは @MarikoMorimotoさん! リクエストを受け付けました。処理を始めます。ログの詳細はこちらです: in the logs

@MarikoMorimoto
Copy link
Copy Markdown
Collaborator Author

@fumikito
Gemini CLI と Claude Codeを追加しました。
マージしても良いでしょうか。

  • Gemini CLIのAPIキーは、無課金のものをリポジトリのSecretsに追加して使用しています。
  • Claude CodeのAPIキーは、Organization Secrets に登録されていたものを使用しています。
    • こちら、使用してもよかったでしょうか。
    • ダメそうであれば、別のAPIキーを発行してリポジトリ用のSecretsに登録します。

Gemini CLI

このプルリクでは実行できていません。

環境情報を渡しても正しくそれらを受け取ってくれない問題が発生中で、公式のイシューにも登録されています。
イシュー: ttps://github.com/google-github-actions/run-gemini-cli/issues/425
↑イシューとこのプルリクが紐づくのがなんか嫌なのでh抜きで記載

これにより自動レビューがうまく動かない状態です。
使用者側のymlファイルで値を変数に入れずに渡せば動くらしい(イシューコメントに書いてあった)のですが、いったん対応待ちします。

Claude Code

このプルリクでは実行できていません。

If you're seeing this on a PR when you first add a code review workflow file to your repository, this is normal and you should ignore this error.

リポジトリにコードレビューワークフローファイルを初めて追加した際にプルリクエストでこのエラーが表示される場合、これは正常な動作です。このエラーは無視してください。

↑と結果に出力されているので、おそらくmasterへのマージ後には使用できるようになると思います。
個人のリポジトリで試したときも同様でした。

@fumikito fumikito merged commit 636866d into master Jan 8, 2026
14 of 15 checks passed
@fumikito fumikito deleted the feature/issue-40-add-ai-review branch January 8, 2026 07:01
@fumikito
Copy link
Copy Markdown
Contributor

fumikito commented Jan 8, 2026

@claude このプルリクエストでやったことを説明してください。

@claude
Copy link
Copy Markdown

claude Bot commented Jan 8, 2026

Claude finished @fumikito's task in 1m 27s —— View job


このプルリクエストで行われた変更の説明

このPR #42では、GitHub Actions上でAIアシスタント(Gemini CLIとClaude Code)を安全に利用するための環境整備が行われました。以下、詳細を説明します。


📋 変更の概要

**合計11ファイル(全て新規追加)**で、Gemini CLIとClaude Codeによる自動レビュー・トリアージ機能を実装しました。


🤖 1. Claude Code の統合

ファイル

  • .github/workflows/claude-auto-review.yml

機能

  1. プルリクエスト自動レビュー

    • PRがオープンされると自動的にClaude Codeがコードレビューを実行
    • コード品質、バグ、セキュリティ、パフォーマンスの観点でレビュー
    • レビュー結果は日本語でPRコメントとして投稿
  2. 手動呼び出し機能

    • PRやIssueのコメントで @claude とメンションすると呼び出し可能
    • メンション後のテキストがプロンプトとして扱われる
  3. セキュリティ対策

    • 実行できるのは OWNERMEMBERCOLLABORATOR のみ
    • 外部コントリビューターは実行不可
    • フォークからのPRでは実行されない

設定

  • モデル: claude-sonnet-4-5-20250929
  • 日本語での出力を指定
  • GitHub CLI ツールのみ許可(セキュリティのため)

🔷 2. Gemini CLI の統合

ファイル構成

ワークフロー(5ファイル):

  • .github/workflows/gemini-dispatch.yml - メインディスパッチャー
  • .github/workflows/gemini-review.yml - PRレビュー用
  • .github/workflows/gemini-triage.yml - Issueトリアージ用
  • .github/workflows/gemini-invoke.yml - 汎用呼び出し用
  • .github/workflows/gemini-scheduled-triage.yml - 定期実行トリアージ用

プロンプト設定(4ファイル):

  • .github/commands/gemini-review.toml - レビュー用プロンプト
  • .github/commands/gemini-triage.toml - トリアージ用プロンプト
  • .github/commands/gemini-invoke.toml - 汎用呼び出し用プロンプト
  • .github/commands/gemini-scheduled-triage.toml - 定期トリアージ用プロンプト

機能

1. プルリクエスト自動レビュー

  • PRオープン時に自動実行
  • MCPサーバー(GitHub MCP Server)を使用してPRにコメントを投稿
  • 日本語でのレビューを実施

2. Issue自動トリアージ

  • Issueがオープン/再オープンされると自動実行
  • リポジトリ内の既存ラベルから適切なものを選んで自動付与
  • タイトルと本文を分析して分類

3. 定期的な未分類Issue処理

  • 1時間ごとに実行
  • ラベルが付いていないIssue、または status/needs-triage ラベルが付いているIssueを処理
  • 最大10件まで一括処理

4. 手動呼び出し機能

  • @gemini-cli でメンション
  • PRでは自動的にレビューモード、Issueでは汎用呼び出しモードに
  • @gemini-cli /review@gemini-cli /triage で明示的に指定も可能

セキュリティ対策

  • 外部コントリビューターは実行不可(OWNERMEMBERCOLLABORATOR のみ)
  • フォークからのPRでは実行されない
  • トリアージ処理では認証トークンを渡さない(untrusted inputsのため)

📚 3. ドキュメント

ファイル

  • .github/ai-assistants.md

内容

94行の詳細な運用ガイドで、以下をカバー:

  • 自動トリガーの説明(PR作成時、Issue作成時、定期実行)
  • 手動呼び出し方法(@gemini-cli@claude
  • セキュリティガード(外部コントリビューター制限)
  • 実行結果の確認方法
  • トラブルシューティング
  • 必要な環境変数(GEMINI_API_KEYANTHROPIC_API_KEY

既知の問題

ドキュメントには、Gemini CLIが現在正常に動作していないことが明記されています:

  • 環境情報を正しく受け取れない問題が発生中
  • 公式リポジトリのissue #425で報告済み
  • 対処方法は存在するが、公式の対応待ち

🔐 環境設定

Secrets

  • GEMINI_API_KEY - Gemini CLI用(無課金版をリポジトリSecretsに設定)
  • ANTHROPIC_API_KEY - Claude Code用(Organization Secretsを使用)

Variables

  • GEMINI_DEBUG - デバッグモードON/OFF(デフォルト: false

✨ 主な特徴

  1. セキュリティ重視の設計

    • 外部コントリビューターからの実行を完全ブロック
    • フォークからのPRでは実行されない
    • 最小限の権限でツールを制限
  2. 柔軟な呼び出し方法

    • 自動実行(PR/Issue作成時、定期実行)
    • 手動実行(@gemini-cli@claude でメンション)
    • 明示的なコマンド指定(/review/triage
  3. 日本語サポート

    • 全てのAIアシスタントが日本語で応答
    • ドキュメントも日本語
  4. 丁寧なユーザーフィードバック

    • リクエスト受付時に確認メッセージを投稿
    • ログへのリンクを提供
    • エラー時にもコメントで通知

⚠️ 現在の制約

  • Gemini CLI: 初回実行時には環境変数の問題で正常に動作しない(公式issue対応待ち)
  • Claude Code: 初回追加時のPRでは動作しない(マージ後に有効化される)※これは正常な動作

📖 関連Issue


Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants