Claude Code Action と Amazon Bedrock を使用した、Issue 対応 & コードレビューのサンプル実装です。
リポジトリの解説記事は Claude Code GitHub Actions w/ Amazon Bedrock で Issue 対応 & コードレビューしてもらう からご確認いただけます。
- Issue 対応: テトリスの機能追加案を考える #1
- コードレビュー: テトリスにカスタムテーマ機能を実装 #3
このリポジトリは以下のような構成になっています:
bedrock-claude-code-action-reviewer/
├── .github/workflows/ # GitHub Actions ワークフロー定義
│ ├── claude.yaml # Claude Code Action の設定
│ └── static.yml # GitHub Pages デプロイ用設定
├── cdk/ # AWS CDK プロジェクト
│ ├── bin/ # CDK アプリケーションのエントリーポイント
│ ├── lib/ # CDK スタック定義
│ │ ├── github-oidc-stack.ts # GitHub OIDC 認証用スタック
│ │ └── parameters.ts # 設定パラメータ
│ └── test/ # テストコード
├── tetris/ # テトリスゲーム実装(サンプルプロジェクト)
│ ├── js/ # JavaScript モジュール
│ │ ├── board.js # ゲームボード管理
│ │ ├── game.js # ゲームロジック
│ │ ├── pieces.js # テトリスピース定義
│ │ ├── renderer.js # 描画処理
│ │ ├── ui.js # ユーザーインターフェース
│ │ └── utils.js # ユーティリティ関数
│ ├── index.html # メインHTML
│ ├── script.js # メインスクリプト
│ ├── style.css # スタイルシート
│ └── README.md # テトリスプロジェクトの説明
├── CLAUDE.md # Claude の動作カスタマイズ設定
└── README.md # プロジェクト全体の説明
-
GitHub Actions 設定
claude.yaml: Issue や PR で@claudeとメンションされた時に Claude Code Action を実行static.yml: テトリスゲームを GitHub Pages にデプロイ
-
CDK プロジェクト
- GitHub Actions から AWS Bedrock にアクセスするための IAM ロールを作成と OIDC 設定を実施
-
テトリスプロジェクト
- Claude Code Actions の動作確認用のサンプル実装
- モジュール化された JavaScript コードで構成
このプロジェクトには、GitHub Actions から Amazon Bedrock を利用するための CDK スタックが含まれています。 CDK の利用方法については AWS CDK で使用する環境を設定する をご確認ください。
cdk/lib/parameters.tsファイルを編集して、GitHub のユーザー名とリポジトリ名を設定します。
export const GitHubOidcParameters = {
gitHubOwner: "your-github-username", // GitHubのユーザー名またはOrganization名
gitHubRepo: "your-github-repo", // GitHubのリポジトリ名
gitHubBranch: undefined, // 特定のブランチに制限する場合は指定(例: 'main')
roleName: undefined, // IAMロールの名前(未指定の場合は自動生成)
region: undefined, // デプロイ先のAWSリージョン
accountId: undefined, // デプロイ先のAWSアカウントID
};- CDK をデプロイします。
cd cdk
npm install
cdk deploy- デプロイが完了すると、以下の出力値が表示されます:
GitHubOidcStack.GitHubActionsRoleArn- GitHub Actions で使用する IAM ロールの ARN
-
GitHub リポジトリの「Settings」→「Secrets and variables」→「Actions」に移動します。
-
Repository secrets に以下のシークレットを追加します:
AWS_ROLE_TO_ASSUME: CDK デプロイ時に出力されたGitHubOidcStack.GitHubActionsRoleArnの値
-
.github/workflows/claude.yamlを参照し、Claude Code Action を利用したいリポジトリのワークフローを設定します。- claude.yaml の中の
aws-region: us-west-2,model: "us.anthropic.claude-3-7-sonnet-20250219-v1:0"を必要に応じて変更してください。 - 対応しているモデルおよび推論プロファイルは Supported Regions and models for inference profiles から確認できます。
- US Claude Sonnet 4:
us.anthropic.claude-sonnet-4-20250514-v1:0 - US Claude Opus 4:
us.anthropic.claude-opus-4-20250514-v1:0
- US Claude Sonnet 4:
- 重要: デフォルトでは、GitHub ユーザー
ymhirokiのみが Claude を呼び出せるように制限されています。他のユーザーが利用する場合は、.github/workflows/claude.yamlの以下の部分を変更してください:
if: | (github.actor == 'ymhiroki') && ( (github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) || ... )
上記の
github.actor == 'ymhiroki'を自分のGitHubユーザー名に変更するか、この条件を削除して誰でも利用できるようにします。 - claude.yaml の中の
Claude Code Action は以下のイベントで起動します:
-
Issue での利用
-
プルリクエストでの利用
Claude Code Action は、コードの生成や修正、質問への回答など、様々なタスクに対応できます。例えば:
- 「このコードのバグを修正して」
- 「この API の使い方を説明して」
- 「このコードをリファクタリングして」
- 「このコードにテストを追加して」
などの指示を出すことができます。
Claude Code Action のドキュメント を参考にカスタマイズできます。
リポジトリのルートディレクトリにCLAUDE.mdファイルを作成することで、Claude Code Action の動作をさらにカスタマイズできます。このファイルには、Claude の応答スタイルや特定のコーディング規約、プロジェクト固有の指示などを記述できます。
リポジトリのルートディレクトリにCLAUDE.mdファイルを作成します。
本リポジトリにも CLAUDE.md が含まれます。
- OIDC 認証エラー: Repository Secrets に IAM ロールの ARN が正しく設定されているか確認してください
- モデルアクセスエラー: 指定した Bedrock モデルへのアクセス権があるか確認してください
- リージョンエラー: Bedrock がサポートされているリージョンであるかを確認してください
Claude Code Action を活用できる具体的なシナリオをいくつか紹介します:
- PR の自動レビュー: プルリクエストが作成されたときに、コードの品質、バグ、セキュリティ問題などを自動的にチェック
- コードスタイルの改善提案: コーディング規約に沿っていない部分を指摘し、修正案を提示
- ドキュメント不足の検出: コメントやドキュメントが不足している箇所を特定し、追加案を提案
- パフォーマンス改善の提案: パフォーマンスに影響する可能性のあるコードパターンを特定し、最適化案を提示
- バグ修正の実装: 「このバグを修正して」と指示するだけで、Claude が修正コードを提案
- テストコードの生成: 既存のコードに対するユニットテストや E2E テストの自動生成
- リファクタリングの実施: 複雑なコードをより読みやすく保守しやすい形に改善
- 新機能の実装サポート: 「〇〇の機能を追加して」という指示から基本的な実装を提案
- README の自動更新: コードの変更に合わせてドキュメントを自動的に更新
- API ドキュメントの生成: コードから API エンドポイントの仕様を抽出してドキュメント化
- 使用例の作成: 新しい機能や API の使用例を自動的に生成
- 変更履歴の要約: PR の内容を分かりやすく要約し、CHANGELOG に追加できる形式で提供
- 新メンバーのオンボーディング支援: コードベースについての質問に回答し、理解を促進
- コードの説明: 複雑なコードブロックの動作や意図を詳細に説明
- 技術的な質問への回答: アーキテクチャやデザインパターンに関する質問に回答
- コードの移行支援: 古い API や非推奨機能から新しいものへの移行方法を提案
- 依存関係の更新: セキュリティアップデートが必要なパッケージの更新 PR を自動作成
- コード整形の自動化: コードスタイルの一貫性を保つための自動フォーマット
- TODO コメントの実装: コード内の TODO コメントを検出し、実装案を提案
- デプロイ前チェック: リリース前の最終チェックとして、潜在的な問題を特定
これらのユースケースは、@claudeメンションを使って簡単に実行できます。また、特定のファイルパスやユーザーに対して自動的に実行するようにワークフローをカスタマイズすることも可能です。
tetris/ディレクトリには、Claude Code Actions の動作確認用のテトリスゲーム実装が含まれています。このプロジェクトは、GitHub 上で Claude Code Actions を使用した際の挙動や機能を検証するための実践的なサンプルとして作成されました。
こちらのリンクから遊べます: GitHub Pages
詳細は tetris/README.md を参照してください。