powered by TechFeed
表示モード
ハウツー

GeminiのPR自動レビュー機能がGoogleに廃止されたので、OSSで自作した話 — コードベース全体を文脈として渡す「セッションバイアス」対策にも

7月17日、dev.toのユーザー「gde」が「Automated GitHub Code Reviews Using Google Gemini」と題した記事を公開した。この記事では、Google GeminiをGitHub Actions上で動かし、PRのコードレビューとIssueトリアージを自動化するOSSアクションの実装と設計思想について詳しく紹介されている。

7月17日、dev.toのユーザー「gde」が「Automated GitHub Code Reviews Using Google Gemini」と題した記事を公開した。この記事では、Google GeminiをGitHub Actions上で動かし、PRのコードレビューとIssueトリアージを自動化するOSSアクションの実装と設計思想について詳しく紹介されている。


Googleが廃止した、あのPRレビュー機能の代替を自分で作った

GoogleがGeminiを使ったGitHub連携機能を2本立て続けに廃止した。

  • Gemini CLI GitHub Actions(run-gemini-cli: PRを検知してコンテナ内でGemini CLIを起動し、自動レビューを行うAction。2026年6月18日にサービス終了。
  • Gemini Code Assist on GitHub: PRオープン時にGoogleのバックエンドへwebhookを飛ばす直接統合。2026年7月17日に廃止。

有料サブスクリプション契約者も例外ではない。

記事の著者は「失いたくなかったので自分で作った」として、OSSのGitHub Action derailed-dash/gemini-review-action を公開した。GitHub Marketplaceにも登録済みで、ワークフローYAML編集時にIDEの補完が効く。


既存のOSSを使わずに自作した理由

コミュニティ製の代替ツールも存在したが、著者は次の理由でゼロから作ることを選んだ。

速度:DockerではなくComposite Action × uv

既存ツールの多くはDockerコンテナ内でPythonを動かし、依存解決にpipを使っていた。run-gemini-cliもコンテナ方式だった。

著者のアクションはComposite Actionとして実装し、依存インストールにAstralの**uv**を採用した。Dockerプルもコンテナビルドも発生しないため、スクリプトがほぼ即座に起動する。PRを修正して何度もレビューを回す場面での待ち時間が大幅に減る。

コードベース全体を文脈として渡すハイブリッド方式

既存ツールはdiffしか見られなかった。著者のActionはコードベースのサイズに応じて2モードを切り替える

  • Full Context Mode(1.5MB未満): バイナリ・圧縮・暗号化ファイルを除いたリポジトリ全体をGeminiのコンテキストに投入。プロジェクト全体を把握した上でレビューが行われる。
  • Sparse Context Mode(1.5MB以上): ディレクトリツリーの構造、マニフェストファイル、Markdownドキュメントなどをピックアップして渡す。

JSON出力の壊れにくさ:Pydanticスキーマ強制

モデルにJSON返却を指示するだけでは、markdownでラップされた出力や不正フォーマットが混入しコメントパーサーが壊れる。このActionはGeminiのネイティブresponse_schema APIを使い、Pydanticモデルによるスキーマ検証で構造を強制する。

最新SDK・最新モデルをデフォルトに

既存ツールは非推奨になったgoogle-generativeai SDKや旧世代モデルを使っていた。このActionはgoogle-genai SDKと最新のGemini Flash系モデルをデフォルトとして採用している。

※元記事に記載されているデフォルトモデル名については、執筆時点の最新版を参照していただきたい。モデル名はリリースサイクルに応じて変更される可能性がある。


「ローカルAIアシスタントとの分業」という視点

著者が強調する面白いポイントがある。ローカルのAIアシスタント(Copilot、Cursor等)とペアプログラミングを続けると、AIはコードの変遷・意図・妥協点を会話履歴から把握してしまい、最終的な実装の穴を見逃しやすくなる(著者はこれを「セッションバイアス」と呼ぶ)。

このGitHub Actionはステートレスで、どんな経緯でそのコードが書かれたかを一切知らない。「実際のdiffをコードベース全体と照らし合わせる客観的なレビュアー」として機能するため、ローカルアシスタントが見落としたバグやセキュリティ問題を拾いやすい、というわけだ。


主な機能一覧

  • AIコードレビュー: PRに対してGeminiが行番号指定で具体的なフィードバックを投稿
  • Issueトリアージ自動化: 新規Issueへの動的なラベル付け・優先度付け
  • Suggestion blocks対応: GitHubネイティブの suggestion ブロック形式でコード修正案を提示し、ワンクリックでマージ可能
  • トリガー: PR操作に自動反応、またはPRコメントで /gemini-review と書くことで手動起動
  • クロスプラットフォーム: Linux・macOS・Windows(GitHub-hostedおよびself-hosted runner)で動作
  • 認証: Gemini APIキーまたはGoogle Cloud Workload Identity Federation(WIF)に対応
  • カスタムプロンプト: リポジトリごとにTOMLファイルでレビュー指示を上書き可能。レビュー言語の指定も可能

セットアップの概要

ワークフローファイルを.github/workflows/に置き、Gemini APIキーをGitHub Secretsに登録するだけで動作する。run-gemini-cliからの移行を意識したドロップイン設計のため、既存ワークフローからの乗り換えコストは低い。

詳細はAutomated GitHub Code Reviews Using Google Geminiを参照していただきたい。