Claude CodeとGitHub Actionsで、AI情報サイトをAPI課金ゼロで自動運用してみた
✔ 事実確認済み(2026-10-10):記事中の事実 5 件を出典の本文と照合しています。
💡 運営者が実際に感じたことをもとに、題材をオーナー自身が考えた記事です。本文中の事実は公式情報で確認しています。
Claude CodeとGitHub Actionsを組み合わせて、個人開発のAI情報サイトを自動運用しています。毎朝クラウド側だけで記事が1本生成され、事実確認を経て公開される仕組みです。これから個人開発でAIを使った自動化を試したい方に向けて、運用費を抑えながら動かす工夫と、実際につまずいた点を紹介します。
PCを立ち上げなくても自動運用できるのか
自動化を始める前、最初に気になったのは「自分のPCを起動していない間も、処理は進むのか」という点でした。これはClaude Code自身に相談しながら設計を詰めました。
結論として、GitHub Actions(GitHubが提供するクラウド側の実行環境)の上だけで、記事の生成から事実確認、サイトのビルド、公開までを完結させる設計にしています。ローカルのPCは、手元での動作確認やコードの変更をするときだけ使い、日々の記事生成そのものはPCの電源に関係なく進みます。スケジュールされた時刻になると、GitHubのサーバー上でワークフロー(決められた手順の自動処理)が立ち上がり、処理が終わるとコミットとして記録される流れです。
API課金を避けるための工夫
生成AIを使った自動化というと、API(プログラムから呼び出す窓口)の従量課金を心配される方が多いと思います。実際に私が一番気を使ったのもこの点でした。
Claude Code公式ドキュメントでは、GitHub Actions上でClaude Codeを認証する方法として、APIキーのほかに、サブスクリプションで認証する方法が案内されています。公式の説明を要約すると、CLAUDE_CODE_OAUTH_TOKEN という種類のトークン(アクセスを許可する鍵のようなもの)を使えば認証できます。対象は、Pro・Max・Team・Enterpriseといった契約中のClaudeサブスクリプションです。このトークンは、claude setup-token というコマンドをローカルのPCで一度実行するだけで発行できます。
さらに、コスト管理に関する項目では、次のように説明されています。
If you authenticate with an OAuth token, runs use your Claude subscription instead of API billing.
OAuthトークン(サブスクリプション認証用のアクセス鍵)で認証した場合、実行のたびにAPIの従量課金が発生するのではなく、契約しているサブスクリプションの範囲内で処理が行われる、という意味です。
発行したトークンは、GitHubのリポジトリの「シークレット」(秘密情報を安全に保存する仕組み)に登録しておきます。こうしておけば、ワークフローが実行されるたびにAPIの従量課金が発生することはなく、契約しているサブスクリプションの範囲で動かせます。個人開発で「気づいたら高額請求が来ていた」という事態を避けたい場合、この認証方式を選べるかどうかは大きな分かれ目になると感じました。
CI実行時間の制約との付き合い方
もう一つ苦労したのが、GitHub Actionsの実行時間の制約です。GitHub公式ドキュメントには、GitHubがホストする実行環境について、次のように明記されています。
Each job in a workflow can run for up to 6 hours of execution time.
1つのジョブ(まとまった処理の単位)が動かせる時間は、最大6時間までと決められているという意味です。さらに、1回のワークフロー全体(複数のジョブをまとめた一連の処理)としても、承認待ちの時間を含めて最大35日までという上限が公式ドキュメントに記載されています。記事の生成・事実確認・検証・サイトのビルドをすべて1つの長い処理にまとめると、内容によっては時間を圧迫しかねません。
そこで、処理を工程ごとに分けました。「記事を1本書く」「事実を確認する」「検証してビルドする」を、それぞれ別のステップ、別のタイミングで実行する構成です。実際にやってみると、処理を分けること自体が目的ではなく、分けた結果として得られる副次的な効果の方が大きいと感じました。1つ1つの処理を小さく保つことで、仮に途中でつまずいても、どの段階で止まったかがすぐに分かります。長い処理の途中で失敗すると、どこまで終わっていたのかを確認する作業だけで時間がかかってしまいますが、工程を分けておけば、失敗した工程だけをやり直せます。これは、6時間という制限そのものよりも、日々の運用のしやすさという点で効いてきた工夫でした。
実際にやってみて分かったこと
| 項目 | 工夫したこと |
|---|---|
| PCの常時起動 | GitHub Actions側で完結させ、PCの電源に依存しない設計にした |
| API課金 | サブスクリプション認証(claude setup-token)を使い、従量課金を避けた |
| CI実行時間の制約 | 処理を工程ごとに分割し、1つの処理を小さく保った |
Q. GitHub Actionsだけで本当に運用費はかからないのですか? A. GitHub Actionsには無料枠があり、個人開発の小規模な用途であれば範囲内に収まることが多いです。ただし、リポジトリの公開・非公開や利用量によって条件が変わるため、ご自身の利用状況は公式の請求ドキュメントで確認することをおすすめします。
Q. サブスクリプション認証は誰でも使えますか? A. 公式ドキュメントによると、Pro・Max・Team・Enterpriseプランで利用できるとされています。契約しているプランによって使える上限は変わるため、公式サイトでの確認が必要です。
Q. Claude Codeが作ったコミットをきっかけに、別のワークフローを自動で動かせますか?
A. そのままでは動きません。Claude Code公式ドキュメントには、GitHubの標準的な認証情報(GITHUB_TOKEN)で作られたコミットは、別のワークフローの引き金にならないと明記されています。工程を分けて連鎖させたい場合は、この制約を踏まえて認証方法を選ぶ必要がありました。
Q. 記事の事実確認はどうしていますか? A. このサイトでは、記事を書く役とは別に、事実確認を担当する役割を分けています。記事中の主張を1つずつ出典の本文と照合し、裏付けが取れないものは記事を修正するか、公開を見送る仕組みです。今回の記事のように、きっかけが運営者自身の実体験であっても、本文中で取り上げる客観的な事実の部分は、このチェックの対象になります。
まとめ
- GitHub Actionsのクラウド側だけで記事生成から公開までを完結させる設計にし、PCの電源に依存しない自動運用を実現しました。
- サブスクリプション認証(
claude setup-token)を使うことで、API従量課金ではなく契約プランの範囲で動かす工夫をしました。 - GitHub Actionsの実行時間制約(1ジョブ最大6時間)を踏まえ、処理を工程ごとに分割することで、長時間の処理に伴うリスクを抑えました。
個人開発で生成AIの自動化を検討している方は、まず認証方式(APIキーかサブスクリプションか)と、処理をどう分割するかの2点から設計を始めてみることをおすすめします。Claude Codeの機能そのものについては、Claude Modsなどの関連記事もあわせてご覧ください。