⚙️

Gemini CLI GitHub Actions で PR の自動コードレビューとセキュリティ分析を導入してみた

に公開

はじめに

こんにちは、株式会社AI Shift の yoshi です。
この記事はAI Shift Advent Calendar 2025の19日目の記事です。

今回は Gemini CLI GitHub Actions を使用して、Pull Request に対する自動コードレビューとセキュリティ分析を導入した方法について共有します。

説明すること

  • Gemini CLI GitHub Actions と Security 拡張機能の概要
  • GitHub Actions を使った自動コードレビューの仕組み
  • 実際のワークフロー設定方法

説明しないこと

  • Gemini CLI の基本的な使い方
  • GitHub Actions の基本的な使い方

環境

本記事は以下の環境/バージョンになります。

ツール バージョン
google-github-actions/run-gemini-cli v0.1.14
github/github-mcp-server v0.18.0
Gemini CLI v0.16.0

導入の背景

5〜10名程度の開発チームで機能開発を活発に行っていると、コードレビューに十分な時間を割くことが難しくなることがあります。

私たちのチームでは、既に GitHub Copilot コードレビューを導入して AI によるレビューの自動化を進めていました。しかし、以下のような課題を感じていました。

  • レビュアーが忙しいと PR がマージされるまでに時間がかかる
  • レビュアーによってチェックポイントが異なる
  • セキュリティ観点でのレビューが後回しになりがち

自動化できるところは自動化して、プロダクト開発に集中し、プロダクトのデリバリー速度を上げていきたい…!
そんな思いから、Gemini CLI GitHub Actions を使った自動コードレビューの導入を決めました。

Gemini CLI GitHub Actions とは

https://storage.googleapis.com/gweb-cloudblog-publish/images/Gemini_CLI_GitHub_Actions_.max-1900x1900.png
「AI コーディングの新たなパートナー:Gemini CLI GitHub Actions を発表 | Google Cloud 公式ブログ」より

Google Cloud の公式ブログで発表された通り、Gemini CLI GitHub Actions は GitHub リポジトリで無料で利用できる AI コーディングパートナーです。

新たなイシューやプルリクエストなどのイベントをトリガーに、プロジェクト全体のコンテキストを理解して、バックグラウンドで非同期的に動作し、タスクを自動的に処理します。

Security 拡張機能とは

https://storage.googleapis.com/gweb-cloudblog-publish/images/Gemini_CLI_GitHub_Actions_.max-1900x1900.png
「新しい Gemini CLI 拡張機能でアプリのデプロイとセキュリティ分析を自動化 | Google Cloud 公式ブログ」より

Google Cloud の公式ブログで紹介されている通り、Gemini CLI には Security 拡張機能が用意されています。

この拡張機能は /security:analyze コマンドを提供し、以下のようなセキュリティ分析を自動で実行してくれます。

  • ハードコードされたシークレットの検出
  • インジェクション脆弱性
  • アクセス制御の不備の検出
  • 安全でないデータ処理の指摘

https://github.com/gemini-cli-extensions/security

なぜ Gemini CLI GitHub Actions を採用したのか

既に社内の他リポジトリでは Claude Code や SaaS による自動コードレビューが導入されていました。
そこで、Gemini CLI GitHub Actions を導入することで、どのような違いがあるのか比較してみたいと考えました。
また、セキュリティ拡張機能はオープンソースで提供されているため、プロンプトの内容を確認しつつ、私たちのチーム用にカスタマイズして調整できる点も魅力でした。

自動コードレビューの中身

今回導入した自動コードレビューは、以下のような仕組みで動作します。

Architecture

ワークフローは 2 つのレビューを並列で実行します。
また、今回の PR Review / Security Analysis は、以下のワークフローを参考に設定しています。

https://github.com/google-github-actions/run-gemini-cli/blob/main/examples/workflows/pr-review/gemini-review.yml

https://github.com/gemini-cli-extensions/security/blob/main/.github/workflows/gemini-review.yml

レビュー 説明
PR Review コードの品質、正確性、保守性、テストカバレッジなどを総合的にレビュー
PR Security Analysis セキュリティ脆弱性に特化した分析

レビューの重要度レベル

レビューコメントには以下の重要度が付与されます。

レベル 説明
🔴 Critical 本番障害やセキュリティ侵害を引き起こす可能性。マージ前に必ず修正が必要
🟠 High 将来的に重大な問題やバグを引き起こす可能性。マージ前に対応すべき
🟡 Medium ベストプラクティスからの逸脱や技術的負債。改善を検討すべき
🟢 Low 軽微な問題やスタイルの指摘。作者の裁量で対応

実行条件(トリガー)

実行条件は以下のように設定しています。

  • PR が開かれた時(ドラフトでない場合)
  • PR がレビュー準備完了になった時
  • PR が再開された時
  • Z-auto-review ラベルが付与された時

Z-auto-review ラベルは、任意のタイミングでワークフローを実行するためのラベルです。自動コードレビュー後に修正や再度レビューを行う場合にラベルを付与して再度ワークフローを実行させるために使用しています。
また、現時点[1]では Renovate や Dependabot による依存関係の更新はコストの観点から自動コードレビューの対象外としています。(まだ整備が不十分で PR の量が多くなってしまうため…)

プロンプトのカスタマイズ

Gemini CLI GitHub Actions では、.github/commands/<custom-command-name>.toml を配置することで、カスタムコマンド(今回だと pr-review/security-analysis)のプロンプトをカスタマイズできます。
内部では、.github/commands/gemini-review.toml.gemini/commands/gemini-review.toml にコピーして使用しているようです。
私たちのチームでは、日本語でレビュー結果を出力するようにカスタマイズしています。

https://github.com/google-github-actions/run-gemini-cli/blob/87c4941afde98641c57b70f672fbdfb7b9fa4623/examples/workflows/pr-review/README.md#L217-L219

Security 拡張機能のインストール

Gemini CLI Github Actions では、オプションに extensions を指定することで拡張機能をインストールすることができます。
https://github.com/gemini-cli-extensions/security.git を指定し、セキュリティ分析に必要な MCP Server とコンテキストファイルを取得します。
今回はセキュリティ分析のプロンプトをカスタマイズしていますが、このインストールを行わないと MCP Server やコンテキストファイルが存在せず、セキュリティ分析が正しく動作しないため注意が必要です。

https://github.com/gemini-cli-extensions/security/blob/main/.github/workflows/gemini-review.yml#L148-L151

レビュー結果

実際の内容を見せることができないのが残念ですが、以下は PR を作成した際の PR Review と PR Security Analysis のレビューコメントの一部です。

PR Review
PR Review

Security Analysis
PR Security Analysis

Suggestion
Suggestion

レビューコメントには suggestion ブロックが含まれており、GitHub の UI から直接コードを適用できます。

導入効果

Gemini CLI を使った自動コードレビューを導入することで、以下のような効果が得られました!

  • PR を Open にすると即座にレビューが開始される
  • 一貫した観点でのコードチェックが行われる
  • セキュリティ脆弱性を早期に発見できる
  • Code Suggestion により修正提案をワンクリックで適用できる

使ってみての感想

GitHub MCP Server による PR に対するコメントの仕方がなるほどな〜と思いました。
個人で触っていた時は gh コマンドと GitHub API を使って PR に対するコメントを投稿していたのですが、フォーマットが崩れてしまうなど高い精度でコメントをできなかったのですが、GitHub MCP Server を使うことでフォーマットが崩れにくくコメントを投稿できるようになっていました。

https://github.com/google-github-actions/run-gemini-cli/blob/main/.github/commands/gemini-review.toml#L132-L152

また、コメントに限らず、コードレビュー / セキュリティ分析のプロンプトの内容を知ることができたので、自分で拡張機能を作る際の参考になりました。

https://github.com/google-github-actions/run-gemini-cli
https://github.com/gemini-cli-extensions/security

今後の改善と拡張

現時点のコードレビュー / セキュリティ分析では、仕様書などのドキュメントをコンテキストとして含ませていないため、ドキュメントに沿ったレビューができていません。ドキュメントはエンジニアだけでなく、Project Manager や Customer Success の方が編集する機会があり、プロダクトのリポジトリとは別で管理しています。Git Submodules を使ってドキュメントのリポジトリを読み込むことで、ドキュメントに沿ったレビューができるようにしたいと考えています。

また、実行条件のセクションにもあった通り、Renovate や Dependabot による依存関係の更新はコストの観点から自動コードレビューの対象外としているため、依存関係の更新に関する PR の粒度整備も今後の課題です...(頑張ります)

まとめ

Gemini CLI と GitHub Actions を組み合わせることで、PR に対する自動コードレビューとセキュリティ分析を実現しました。

5〜10名程度の開発チームでもこのような自動化を導入することで、プロダクト開発に集中できる環境を整えることができています!

ただし、現時点では AI によるレビューは人間のレビューを完全に置き換えるものではないと考えています。誤検知やハルシネーションが発生することもあるため、最終的な判断は人間が行う必要があります。AI と人間がうまく協働することで、より効率的で質の高い開発体験を実現していきましょう!

参考リンク

最後に

AI Shift ではエンジニアの採用に力を入れています!
少しでも興味を持っていただけましたら、カジュアル面談でお話しませんか?
(オンライン・19 時以降の面談も可能です!)

【面談フォームはこちら】
https://hrmos.co/pages/cyberagent-group/jobs/1826557091831955459

脚注
  1. 2025/12 時点 ↩︎

AI Shift Tech Blog

Discussion