情報の自動取得
Gemini無料キーとGitHub Secretsの設定(2026)
AI Studioでキー発行、GitHub Secrets登録、429のバックオフと日次おおよそ20回。Vertex有料レーンとの取り違えを避ける通し手順。
GitHub Actionsでフィードを取り込むとき、短い日本語要約だけGeminiの無料枠に任せたい方向けの通し手順です。Vertexの有料レーンやPriority PayGoの記事をそのまま当てはめると、キー種別も料金も違います。読み終わると、AI Studioでキーを作りSecretsに置き、429を瞬間制限と日次上限に切り分け、1往復と要約の手直し(polish)の件数上限で枠を守れる状態になります。
このサイトでは、エディタやCLIのAIチャット(Cursor、Claude Code、GitHub Copilotなど)の枠は使わず、Actions上のスクリプトから呼びます。キーが無くても取得自体は動きます。
この記事でわかること
GEMINI_API_KEYの役割と、漏らし方を避けること- Google AI Studioでのキー発行とGitHub Secretsへの登録
- 429の瞬間制限と日次上限(おおよそ20回)の切り分け
- 1往復要約・polish件数上限
- 作業前にAIへ渡す入力(貼り付け文)
前提・環境
| 項目 | 内容 |
|---|---|
| 執筆時点 | 2026-09 |
| キー種別 | Google AI StudioのAPIキー(無料枠想定) |
| 置き場 | GitHub Actions Secretsの GEMINI_API_KEY |
| 既定モデル | gemini-3.6-flash(Variablesの GEMINI_MODEL で変更可) |
GEMINI_API_KEY は、Actions上のNodeスクリプトが短い要約を依頼するときの認証情報です。ブラウザのGeminiチャットとは別経路です。キー本文はリポジトリ・Issues・チャットに書かないでください。
旧手順/Webナレッジとの手順差異
| 旧手順/Webナレッジ | 最新(この記事執筆時に確認したこと) |
|---|---|
| Vertex AI/グローバルエンドポイント/Priority PayGoを無料キーでそのまま使う | AI Studio無料キーではバックオフ以外は別料金・別手順。混ぜない |
| 要約品質のために同じ件を何度も書き直す | APIは1往復。不合格はdraftや次ランへ |
| 直近14日を毎回全部polish | 年齢・件数上限(例: 3日・ランあたり上限)。日次おおよそ20回を食い尽くさない |
| 429のたびにエディタ/CLIのAIチャットへ逃がす | 定時経路にAIチャットのトークンを混ぜない。取得は残し要約だけ止める |
.env に書けばingestが自動読込 | 現状は シェルの環境変数またはActions Secrets。dotenv自動読込に頼らない |
手順
手順1: Google AI Studioでキーを作る
- APIキー画面 を通常ブラウザで開く
2.新しいキーを作成する(名前例:
243-pocket-media-ingest) - Cloudプロジェクトは Default Gemini Project があればそれを使う。無い/専用に分けたいときだけ新規 4.表示されたキーをコピーする(再表示できないことがあるのですぐ次へ)
本業用プロジェクトと枠を混ぜない方がよいです。
キー文字列を手元に控え、チャットに貼っていないことを確認してください。
手順2: GitHub Secretsに登録する
1.対象リポジトリ → Settings → Secrets and variables → Actions
2. New repository secret
3. Nameは正確に GEMINI_API_KEY
4. Secretにキーを貼って保存
任意でVariablesに GEMINI_MODEL を置けます。Pages用のCloudflare秘密と混ぜないでください。
Secret名が GEMINI_API_KEY で、値は画面に再表示されないことを確認してください。
手順3: 429と枠の運用方針を決める
| 種類 | 目安 | このサイトの扱い |
|---|---|---|
| 瞬間制限 | 短い待機のあと成功することがある | 指数バックオフで数回再試行 |
| 日次上限 | PerDay/quota系。数秒では戻らない | 回路を開き、そのプロセスでは以降Geminiを呼ばない |
参考の一般論(Vertex前提が多い): DataCurrentの429コラム。無料枠でそのまま使えるのはだいたいリトライだけです。
環境変数の目安:
| 変数 | 意味 | 既定の目安 |
|---|---|---|
GEMINI_429_RETRIES | 429の再試行回数 | 3 |
GEMINI_429_BASE_MS | 初回待機の基準(ミリ秒) | 2000 |
POLISH_MAX_AGE_DAYS | 要約対象の公開日上限(日) | 3 |
POLISH_MAX_PER_RUN | 1ランの呼び出し上限 | 6 / 4(security / incidents) |
POLISH_RETRY_PENDING | 既に「(要約作成中)」の件を再呼び出し | オフ(1 で明示時のみ) |
既に「(要約作成中)」のメモは、定時polishでは 再呼び出ししません(薄い本文で毎回pendingを返して枠を溶かすため)。残りは手埋めか POLISH_RETRY_PENDING=1 です。
日次枠のリセットは 太平洋時間の0:00 前後です。「初回429からちょうど24時間」ではありません。モデルあたり無料generateは日次おおよそ 20回(実測)です。
要約は1往復であること、POLISH_MAX_PER_RUN に件数上限があること、既に「(要約作成中)」の定時再呼び出しがオフ(既定)であることを確認してください。
手順4: Actionsで動作確認する
- Actions から
ingestを手動実行する 2.成功して差分があれば要約付きコミットが入り、Pagesデプロイが続く 3.キー未設定でもingestは失敗しない(要約だけ原文ベース)
ログに gemini: の認証エラーが無いこと(キー有り時)、またはキー無しでも取得が残ることを確認してください。
手順5: (任意)ローカルで試す
# Windows PowerShell の例
$env:GEMINI_API_KEY = "ここにキー"
npm run ingest
.env に書いても現状のingestは自動では読み込みません。ローカル用の値はコミットしないでください。
環境変数経由で動かし、値をリポに入れてないことを確認してください。
うまくいかないとき
| 症状 | 見ること |
|---|---|
| 要約が英語/原文のまま | ログの gemini: エラー。Nameが GEMINI_API_KEY か |
| 短い待機のあと成功する429 | 瞬間制限。追加作業は不要なことが多い |
| 日次/quota系の429が続く | 回路開放。太平洋時間の日付変更後を待つ |
| 日付が変わってもすぐ429 | 古い未翻訳の連打、またはpendingの再呼び出し。年齢制限とpendingスキップを確認 |
| キーを再表示できない | 破棄して新規発行しSecretを更新 |
| Actionsは緑だが要約が変わらない | 新規エントリ無し、または「(要約作成中)」待ちなら正常 |
未要約の手直し完了判定は 情報メモの要約を手で埋めたら再一覧せよ です。
作業前にAIへ渡す入力
次は、読者が AIへのプロンプト(またはrules)に出す指示のサジェストです。そのままコピーして使えます。長い人間向け手順は書きません。
AI向け:永続ルール(rules / AGENTS.md)
GEMINI_API_KEY は手順解説型。Secrets/ローカル環境変数に置く。チャット・Git・スクショに鍵の値を出すな。
Vertex/PayGo の手順を AI Studio 無料キーにそのまま当てるな。
429 時は定時をエディタ/CLI の AI チャットに逃がすな。要約は1往復。polish は件数・年齢上限。既に「(要約作成中)」は定時で再呼び出しするな(手埋めか POLISH_RETRY_PENDING)。日次おおよそ20回を無制限 polish で食い尽くすな。
AI向け:この作業の開始時にチャットへ貼る文
Gemini キーと GitHub Secrets を手順解説で進める。鍵の値は表示・コミット・チャット転記するな。
前提→旧手順/Webナレッジとの手順差異→番号手順(各末尾に「〜ことを確認してください」)で案内せよ。429/枠では1往復・件数上限・AI チャットへの逃がし禁止を守れ。
人間向け
なし。上のAI向けサジェストをプロンプトに貼るだけでよい。
まとめ
- AI StudioキーをSecretsに置けばActionsから短い要約を頼める
- 429は瞬間ならバックオフ、日次なら回路を開いて待つ
- 1往復とpolish上限で枠を守る。既pendingは定時で再呼び出ししない。キーが無くても取り込みは止めない