Gemini CLI Action

生成AIでGitHubワークフローを自動化・高度化する

これは何?

`google-gemini/gemini-cli-action` は、Googleの強力な生成AIモデル「Gemini」を、GitHub Actionsのワークフロー内に直接組み込むためのツールです。これにより、コードレビュー、ドキュメント生成、リリースノート作成といった様々な開発タスクを自動化し、生産性を飛躍的に向上させることができます。

GitHubイベント
(Push, PR)
ワークフロー
トリガー
Gemini Action
プロンプト実行

活用事例

🤖 コードレビューの自動化

Pull Requestの差分をGeminiに送信し、バグの可能性、パフォーマンスの懸念、コーディング規約の遵守状況を自動的にチェックさせます。レビュー担当者の負担を軽減し、品質を均一化します。

📄 ドキュメント生成

ソースコードから関数の説明、パラメータ、返り値などを抽出し、Markdown形式のドキュメントやコードコメントを自動生成します。ドキュメントの鮮度を常に最新に保つことが可能です。

📝 コミットメッセージの生成

コードの変更内容を解析し、「Conventional Commits」のような規約に準拠した、分かりやすいコミットメッセージを自動で提案します。コミットログの可読性が向上します。

生成前: `update files`


生成後: `feat(api): add user authentication endpoint`

🏷️ Issueの自動トリアージ

新規作成されたIssueのタイトルと本文をGeminiが分析し、`bug`、`feature`、`documentation` といった適切なラベルを自動で提案または付与します。Issue管理の効率化に繋がります。

🧪 テストケースの生成

特定の関数やコンポーネントのコードを基に、正常系・異常系のテストケースを自動で生成します。テストカバレッジの向上を容易にし、開発の初期段階でバグを発見するのに役立ちます。

🚀 簡単セットアップ

ステップガイド

  1. Google AI StudioでGemini APIキーを取得します。
  2. GitHubリポジトリの `Settings` > `Secrets and variables` > `Actions` に、`GEMINI_API_KEY` という名前でAPIキーを登録します。
  3. リポジトリの `.github/workflows/` ディレクトリにYAMLファイルを作成します(例: `gemini.yml`)。
  4. 以下のサンプルコードを参考に、ワークフローを記述します。
  5. プロンプトを自由にカスタマイズして、特定タスクを実行させます。
name: Gemini Code Review

on: [pull_request]

jobs:
  review:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Get PR diff
        id: pr_diff
        run: |
          diff_content=$(git diff origin/main)
          echo "diff<> $GITHUB_OUTPUT
          echo "$diff_content" >> $GITHUB_OUTPUT
          echo "EOF" >> $GITHUB_OUTPUT

      - name: Gemini CLI Action
        id: gemini_review
        uses: google-gemini/gemini-cli-action@v1
        with:
          gemini_api_key: ${{ secrets.GEMINI_API_KEY }}
          prompt: |
            Please review the following code changes
            and provide feedback on potential bugs,
            style issues, or improvements.
            ---
            ${{ steps.pr_diff.outputs.diff }}

      - name: Comment on PR
        uses: actions/github-script@v7
        with:
          script: |
            github.rest.issues.createComment({
              issue_number: context.issue.number,
              owner: context.repo.owner,
              repo: context.repo.repo,
              body: '${{ steps.gemini_review.outputs.gemini-response }}'
            })

🧠 高度な活用:プロンプトの質

Gemini Actionの性能はプロンプトの質に大きく依存します。具体的で、文脈を十分に提供し、明確な役割を与えることで、返答の精度は劇的に向上します。このグラフは、プロンプトの具体性と応答品質の間の正の相関関係を示しています。