GitHub PR Doc Reviewer デプロイ
spec レポジトリの PR を Claude が自動レビューする、AI 搭載の GitHub Actions self-hosted runner です。myoung34/github-runner ベースのコンテナに claude CLI をプリインストールし、GitHub に対して outbound 接続のみ行います。
本例は no-proxy モードで動作します
このランナーは HTTP リクエストを受け取らないため(GitHub へのポーリングのみ)、github-actions-runner と同様に conoha.yml を作らず --no-proxy でデプロイします。詳細は アプリデプロイ — モードの比較 を参照してください。
完成イメージ
- spec レポジトリで PR を開くと、self-hosted runner が拾って
quickモード(mechanical チェックのみ、LLM 呼び出しなし)を自動実行 deep-reviewラベルを付けるとdeepモードに切り替わり、Claude が古さ・不足・ADR との不整合・用語ぶれ・コード/仕様ドリフトを分析- 結果は sticky コメント(quick)またはインライン PR review(deep)として投稿される
前提条件
- ConoHa CLIがインストール・ログイン済み
- ConoHa VPS3 アカウント + SSH キーペア
- GitHub Personal Access Token(
repoスコープ、または対象レポジトリに絞った fine-grained token) - Anthropic Pro または Max サブスクリプション(API キーは不要)
デプロイ手順
bash
# 1. サーバー作成
conoha server create --name doc-reviewer --flavor g2l-t-2 --image ubuntu-24.04 --key-name mykey
# 2. アプリ初期化(--no-proxy モード。conoha.yml は作成しません)
conoha app init doc-reviewer --app-name github-pr-doc-reviewer --no-proxy
# 3. 環境変数を設定
# GitHub PAT の値は事前にシェル変数 ACCESS_TOKEN へ export しておき、
# コマンドやシェル履歴に平文で残らないようにしてください。
conoha app env set doc-reviewer --app-name github-pr-doc-reviewer \
REPO_URL=<YOUR_SPEC_REPO_URL> \
ACCESS_TOKEN=${ACCESS_TOKEN:?required}
# 4. デプロイ(--no-proxy モード)
conoha app deploy doc-reviewer --app-name github-pr-doc-reviewer --no-proxyデプロイ後、1回だけ Claude の OAuth 認証が必要です。
bash
conoha server ssh doc-reviewer -i ~/.ssh/conoha_mykey
docker exec -it $(docker ps -qf name=runner) claude
# デバイスコード → ブラウザで認証 → ~/.claude/ に永続化(claude_home ボリューム)compose.yml の抜粋(runner サービスのみ。全文は GitHub 上の compose.yml を参照):
yaml
services:
runner:
build: .
environment:
- REPO_URL=${REPO_URL}
- ACCESS_TOKEN=${ACCESS_TOKEN}
- RUN_AS_ROOT=false
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- claude_home:/home/runner/.claude
- runner_work:/tmp/runner/work
restart: unless-stopped設定ポイント
ACCESS_TOKENとREPO_URLは上記のようにプレースホルダーのまま掲載しています。実際のPATやレポジトリURLは絶対にコミットしないでください(サンプルで設定済み)。- Anthropic 認証はサブスクリプション(Pro/Max)の OAuth ベースで、API キーは不要です。上記の1回だけの
claude対話ログインで完結します。 quickモード(既定)は mechanical チェックのみで LLM 呼び出しなし。PR にdeep-reviewラベルを付けるとdeepモードになり Claude の意味解析が走ります。- ワークフローテンプレート(
workflow-template/doc-review.yml)を自分の spec レポジトリの.github/workflows/doc-review.ymlにコピーしてください。@mainではなく commit SHA / タグへの pin を推奨します。
動作確認
対象の spec レポジトリで PR を開くと、runner が拾ってジョブを開始します。
bash
conoha app logs doc-reviewer --app-name github-pr-doc-reviewer
# "[doc-reviewer] Claude OAuth credentials detected" が出力されていることを確認GitHub 側では Settings > Actions > Runners でランナーが Idle→ジョブ実行中になり、PR に quick(sticky コメント)または deep(インラインレビュー)の結果が投稿されます。
bash
conoha app status doc-reviewer --app-name github-pr-doc-reviewer