0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【コピペ作業よ、さようなら!】面倒なClaude認証情報の手動更新を、コマンド一発でGitHub Secretsに登録するシェルスクリプト

Posted at

はじめに

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で使用するには、手動でコピー&ペーストする必要がありましたが、以下の問題があります。

  1. セキュリティリスク: 認証トークンを手動でコピーする際の露出リスク
  2. ヒューマンエラー: トークンの一部をコピーし忘れる可能性
  3. 効率性: 複数のリポジトリで設定する場合の手間

スクリプトの特徴

このスクリプトは以下の特徴を持っています:

🔐 セキュリティ重視

  • 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ユーザー名(または組織名)とリポジトリ名をあらかじめ入力しておけば、毎回入力する手間を省けます。

claude-code-to-github-secrets.sh
#!/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

解決方法: リポジトリへの書き込み権限があることを確認してください。

セキュリティのベストプラクティス

  1. 定期的なトークンローテーション: Claude Codeのトークンは定期的に更新されるため、必要に応じてGitHub Secretsも更新してください。

  2. 最小権限の原則: GitHub Actionsのワークフローでは、必要最小限の権限のみを付与してください。

  3. 監査ログの確認: GitHub Secretsへのアクセスログを定期的に確認してください。

まとめ

このスクリプトを使用することで、Claude Codeの認証情報を安全かつ効率的にGitHub Secretsに転送できます。これにより、以下のような自動化が可能になります:

  • コードレビューの自動化
  • ドキュメント生成の自動化
  • テストコードの自動生成
  • リファクタリング提案の自動化

Claude CodeとGitHub Actionsを組み合わせることで、AI支援による開発ワークフローの自動化を実現し、開発効率を大幅に向上させることができます。

参考リンク


注意: このスクリプトは2025年6月時点の情報に基づいています。Claude CodeのAPI仕様やGitHub Actionsの機能は今後変更される可能性があります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?