自動化と CI/CD
スクリプトや CI/CD パイプラインで Claude Code のヘッドレスモードを使用する
自動化と CI/CD¶
Claude Code はヘッドレス(headless)モードに対応しており、スクリプト、CI/CD パイプライン、自動化ワークフローで人手を介さずに使用できます。
基本的な使い方¶
単発実行(-p モード)¶
# 基本的な実行
claude -p "このプロジェクトのアーキテクチャを分析して"
# JSON 出力形式
claude -p "すべての TODO コメントを一覧表示して" --output-format json
# 実行ターン数の制限
claude -p "UserService のユニットテストを作成して" --max-turns 5
使用可能なツールの制限¶
# 読み取り専用の分析(書き込み不可)
claude -p "コード品質を分析して" --allowedTools Read,Glob,Grep
# 読み書き許可(コマンド実行不可)
claude -p "このファイルをリファクタリングして" --allowedTools Read,Write,Edit
権限プロンプトのスキップ¶
安全な隔離環境(Docker コンテナや CI 環境など)の場合:
claude -p "すべての lint エラーを修正してコミットして" --dangerously-skip-permissions
セキュリティ警告:
--dangerously-skip-permissionsはすべての権限プロンプトをスキップします。信頼できる隔離環境でのみ使用してください。
CI/CD 連携の例¶
GitHub Actions¶
name: AI Code Review
on: [pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
- name: Install Claude Code
run: npm install -g @anthropic-ai/claude-code
- name: Run AI Code Review
env:
ANTHROPIC_BASE_URL: "https://asia.qcode.cc/api"
ANTHROPIC_AUTH_TOKEN: ${{ secrets.QCODE_API_KEY }}
run: |
claude -p "この PR のコード変更をレビューして、セキュリティとパフォーマンスの問題に注目して" \
--output-format json \
--max-turns 3 \
--allowedTools Read,Glob,Grep \
> review.json
スクリプトによる自動化¶
#!/bin/bash
# auto-test.sh — テストの自動生成と実行
export ANTHROPIC_BASE_URL="https://asia.qcode.cc/api"
export ANTHROPIC_AUTH_TOKEN="cr_your_api_key"
# テストを生成
claude -p "src/services/ 配下のすべてのファイルにユニットテストを生成して" \
--max-turns 10 \
--allowedTools Read,Write,Glob,Grep,Bash
# テストを実行
npm test
セッションの復元¶
複数回の呼び出し間でコンテキストを維持できます:
# 1 回目の呼び出し:分析
claude -p "プロジェクトのアーキテクチャを分析して" --session-id "ci-task-42" --output-format json
# 2 回目の呼び出し:分析結果に基づく改善提案
claude -p "前回の分析に基づいて改善案を提示して" --resume --session-id "ci-task-42"
出力形式¶
| 形式 | パラメーター | 説明 |
|---|---|---|
| プレーンテキスト | --output-format text |
デフォルト、人間が読みやすい |
| JSON | --output-format json |
構造化出力、スクリプトでの解析に最適 |
| ストリーミング JSON | --output-format stream-json |
リアルタイムストリーミング出力 |
環境変数¶
| 変数 | 説明 |
|---|---|
ANTHROPIC_BASE_URL |
QCode.cc API エンドポイント |
ANTHROPIC_AUTH_TOKEN |
API キー |
CLAUDE_CODE_MAX_TURNS |
デフォルトの最大ターン数 |
CLAUDE_CODE_OUTPUT_FORMAT |
デフォルトの出力形式 |
ベストプラクティス¶
-
常にターン数を制限する:CI では
--max-turnsを使って無限実行を防止 -
ツールを制限する:
--allowedToolsで必要なツールのみを許可 -
隔離環境を使用する:Docker コンテナ内で
--dangerously-skip-permissionsを使用 -
JSON 出力を使用する:自動化シーンでは
--output-format jsonで解析を容易に
次のステップ¶
-
Hooks システム で CI での自動トリガー操作を確認
-
CLI のヒント でその他のコマンドライン活用法を確認