PR Review Response
Overview
PRコードレビューコメントを取得・分析し、2つのモードで対応する:
| モード | 引数 | やること | やらないこと |
|---|---|---|---|
| 実装モード(デフォルト) | なし or PR番号のみ | コメント取得→分析→トリアージ→コード修正→コミット | コメント返信、プッシュ |
| 返信モード | --response | コメント取得→コミット情報から対応内容を把握→返信投稿 | コード修正 |
典型的なワークフロー: まず実装モードで修正・コミット → 次に --response で返信投稿。
Workflow Steps
Step 1: 引数パースとPRレビューコメントの取得(共通)
- •引数パース:
- •引数に
--responseが含まれるか判定 → 返信モード / 実装モード を決定 - •
--responseを除いた残りからPR番号を特定(以下の優先順で解決)
- •引数に
- •PR番号の特定:
a. 引数が指定されている場合: 引数からPR番号を特定(URLの場合は番号を抽出)
b. 引数が省略された場合: 現在のブランチから自動検出
bash
gh pr view --json number,title,headRefName,baseRefName,url
- •
gh pr viewは引数なしで現在のブランチに紐づくPRを自動検出する - •PRが見つからない場合: 「現在のブランチに紐づくPRが見つかりません。PR番号またはURLを指定してください。」と報告して終了
- •
- •PRメタデータを取得:
bash
gh pr view {PR} --json number,title,headRefName,baseRefName,url - •コードレビューコメントを取得:
bash
gh api repos/{owner}/{repo}/pulls/{PR}/comments --paginate- •
gh pr view --commentsではなくgh apiを使う理由: 前者は issue レベルコメントのみ、後者はコード行レベルのレビューコメント(path,line,diff_hunk,in_reply_to_id付き)を返す
- •
- •フィルタリング:
- •
in_reply_to_idが null のルートコメントのみを処理対象とする(スレッドの重複処理を回避) - •既に自分が返信済みのスレッドはスキップ
- •
エラー処理:
- •引数なし かつ 現在のブランチにPRが存在しない場合: 「現在のブランチに紐づくPRが見つかりません。PR番号またはURLを指定してください。」と報告して終了
- •PRが見つからない場合: エラー報告し、PR番号/URLの確認を提案
- •レビューコメントが0件: 「PRレビューコメントはありません。」と報告して終了
- •全コメント対応済み: 「全てのコメントは対応済みです。」と報告して終了
- •返信モードでコミットが存在しない場合: 「ベースブランチからの変更コミットが見つかりません。先に実装モードで修正・コミットしてください。」と報告して終了
Step 2 以降: モード別分岐
- •実装モードの場合 →
workflow-implement.mdの手順に従う - •返信モードの場合 →
workflow-response.mdの手順に従う