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

## はじめに

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を使う方法が知りたい方はあきらパパさんの記事がおすすめです！
(自分も活用させていただきました🙏)

https://note.com/akira_papa_ai/n/n79a024ad9c2b

> **⚠️ macOS 専用ツール**  
> このスクリプトは macOS でのみ動作確認済みです。Windows や Linux では未確認です。



## なぜこのスクリプトが必要か

Claude Codeの認証情報は、macOSのキーチェーン（セキュアな保存方法）に保存されています。

これらの認証情報をGitHub Actionsで使用するには、手動でコピー＆ペーストする必要がありましたが、以下の問題があります。

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

## スクリプトの特徴

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

### 🔐 セキュリティ重視

- macOSキーチェーンからの安全な認証情報取得
- 一時ファイルの適切な権限設定（600）
- 処理完了後の自動クリーンアップ

### 🛡️ エラーハンドリング

- 必要なツールの事前チェック（jq、gh、security）
- GitHub CLI認証状態の確認
- JSONファイルの整合性チェック
- リポジトリアクセス権限の検証

### 🎯 使いやすさ

- 対話的なインターフェース
- 分かりやすいエラーメッセージ
- 進捗状況の可視化

## 前提条件

スクリプトを実行する前に、以下のツールがインストールされている必要があります：

```bash
# macOS (Homebrew)
brew install jq gh

# GitHub CLIの認証
gh auth login
```

## 使い方

### 1. スクリプトのダウンロードと実行権限の付与

```bash
# 元のリポジトリからダウンロード
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. スクリプトの実行

```bash
./claude-code-to-github-secrets.sh
```

### 3. 対話的な設定orファイルに直接入力

スクリプトを実行すると、以下の情報を対話的に入力します：

```bash
=== GitHub リポジトリ情報の入力 ===

GitHubのユーザー名または組織名を入力してください: your-username
リポジトリ名を入力してください: your-repo

入力された情報:
  GitHub URL: https://github.com/your-username/your-repo
```

もしくは、```claude-code-to-github-secrets.sh```にGitHubユーザー名（または組織名）とリポジトリ名をあらかじめ入力しておけば、毎回入力する手間を省けます。

```sh:claude-code-to-github-secrets.sh
#!/bin/bash
# ~~省略~~

# === 設定 ===
CREDENTIALS_FILE="$HOME/.claude-code/credentials.json"
REPO_OWNER="" # GitHubのユーザー名(入力必須)
REPO_NAME="" # リポジトリ名(入力必須)
```


### 4. 確認と実行

```bash
GitHub Secretsに以下の情報を設定します:
  • CLAUDE_ACCESS_TOKEN
  • CLAUDE_REFRESH_TOKEN
  • CLAUDE_EXPIRES_AT

続行しますか？ (y/N): y
```

この後に
```sh
✅ すべての設定が完了しました！
```
と表示されたら、無事に設定完了です。


## トラブルシューティング

### よくある問題と解決方法

#### 1. GitHub CLIが認証されていない

```bash
エラー: GitHub CLIが認証されていません。以下を実行してください:
gh auth login
```

**解決方法**: `gh auth login` を実行してGitHubにログインしてください。

#### 2. キーチェーンから認証情報を取得できない

```bash
❌ キーチェーンから認証情報を取得できませんでした。
   Claude Codeにログインしていることを確認してください。
```

**解決方法**: Claude Codeアプリケーションでログインし直してください。

#### 3. リポジトリへのアクセス権限がない

```bash
❌ リポジトリにアクセスできません: owner/repo
```

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

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

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

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

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

## まとめ

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

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

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

## 参考リンク

https://github.com/u-Hoshi/claude-code-secrets-uploader

- [Claude Code公式ドキュメント](https://docs.anthropic.com/claude-code)
- [GitHub Secrets公式ドキュメント](https://docs.github.com/en/actions/security-guides/encrypted-secrets)
- [GitHub CLI公式サイト](https://cli.github.com/)

---

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