はじめに
Claude Codeは、AnthropicがリリースしたAIペアプログラミングツールで、ターミナルから直接Claudeにコーディングタスクを委譲できる強力なツールです。しかし、CI/CD環境でClaude Codeを活用したい場合、認証情報の管理が課題となります。
本記事では、ローカルのClaude Code認証情報を安全にGitHub Secretsに転送するBashスクリプトを紹介します。これにより、GitHub ActionsでClaude Codeを活用した自動化ワークフローを構築できるようになります。
Claude Code Max/Proの認証キーを使用して、GitHub ActionsでClaude Code Actionsを使う方法が知りたい方はあきらパパさんの記事がおすすめです!
(自分も活用させていただきました🙏)
⚠️ macOS 専用ツール
このスクリプトは macOS でのみ動作確認済みです。Windows や Linux では未確認です。
なぜこのスクリプトが必要か
Claude Codeの認証情報は、macOSのキーチェーン(セキュアな保存方法)に保存されています。
これらの認証情報をGitHub Actionsで使用するには、手動でコピー&ペーストする必要がありましたが、以下の問題があります。
- セキュリティリスク: 認証トークンを手動でコピーする際の露出リスク
- ヒューマンエラー: トークンの一部をコピーし忘れる可能性
- 効率性: 複数のリポジトリで設定する場合の手間
スクリプトの特徴
このスクリプトは以下の特徴を持っています:
🔐 セキュリティ重視
- macOSキーチェーンからの安全な認証情報取得
- 一時ファイルの適切な権限設定(600)
- 処理完了後の自動クリーンアップ
🛡️ エラーハンドリング
- 必要なツールの事前チェック(jq、gh、security)
- GitHub CLI認証状態の確認
- JSONファイルの整合性チェック
- リポジトリアクセス権限の検証
🎯 使いやすさ
- 対話的なインターフェース
- 分かりやすいエラーメッセージ
- 進捗状況の可視化
前提条件
スクリプトを実行する前に、以下のツールがインストールされている必要があります:
# macOS (Homebrew)
brew install jq gh
# GitHub CLIの認証
gh auth login
使い方
1. スクリプトのダウンロードと実行権限の付与
# 元のリポジトリからダウンロード
curl -O https://github.com/u-Hoshi/claude-code-secrets-uploader/raw/main/update_claude_code_secrets.sh
# 実行権限を付与
chmod +x update_claude_code_secrets.sh
2. スクリプトの実行
./claude-code-to-github-secrets.sh
3. 対話的な設定orファイルに直接入力
スクリプトを実行すると、以下の情報を対話的に入力します:
=== GitHub リポジトリ情報の入力 ===
GitHubのユーザー名または組織名を入力してください: your-username
リポジトリ名を入力してください: your-repo
入力された情報:
GitHub URL: https://github.com/your-username/your-repo
もしくは、claude-code-to-github-secrets.sh
にGitHubユーザー名(または組織名)とリポジトリ名をあらかじめ入力しておけば、毎回入力する手間を省けます。
#!/bin/bash
# ~~省略~~
# === 設定 ===
CREDENTIALS_FILE="$HOME/.claude-code/credentials.json"
REPO_OWNER="" # GitHubのユーザー名(入力必須)
REPO_NAME="" # リポジトリ名(入力必須)
4. 確認と実行
GitHub Secretsに以下の情報を設定します:
• CLAUDE_ACCESS_TOKEN
• CLAUDE_REFRESH_TOKEN
• CLAUDE_EXPIRES_AT
続行しますか? (y/N): y
この後に
✅ すべての設定が完了しました!
と表示されたら、無事に設定完了です。
トラブルシューティング
よくある問題と解決方法
1. GitHub CLIが認証されていない
エラー: GitHub CLIが認証されていません。以下を実行してください:
gh auth login
解決方法: gh auth login
を実行してGitHubにログインしてください。
2. キーチェーンから認証情報を取得できない
❌ キーチェーンから認証情報を取得できませんでした。
Claude Codeにログインしていることを確認してください。
解決方法: Claude Codeアプリケーションでログインし直してください。
3. リポジトリへのアクセス権限がない
❌ リポジトリにアクセスできません: owner/repo
解決方法: リポジトリへの書き込み権限があることを確認してください。
セキュリティのベストプラクティス
-
定期的なトークンローテーション: Claude Codeのトークンは定期的に更新されるため、必要に応じてGitHub Secretsも更新してください。
-
最小権限の原則: GitHub Actionsのワークフローでは、必要最小限の権限のみを付与してください。
-
監査ログの確認: GitHub Secretsへのアクセスログを定期的に確認してください。
まとめ
このスクリプトを使用することで、Claude Codeの認証情報を安全かつ効率的にGitHub Secretsに転送できます。これにより、以下のような自動化が可能になります:
- コードレビューの自動化
- ドキュメント生成の自動化
- テストコードの自動生成
- リファクタリング提案の自動化
Claude CodeとGitHub Actionsを組み合わせることで、AI支援による開発ワークフローの自動化を実現し、開発効率を大幅に向上させることができます。
参考リンク
注意: このスクリプトは2025年6月時点の情報に基づいています。Claude CodeのAPI仕様やGitHub Actionsの機能は今後変更される可能性があります。