gh-pr-review について
gh-pr-review は、ターミナルから GitHub の Pull Request に付いたレビューコメントやスレッドを扱う CLI 拡張です。構造化 JSON を出力し、自動化や LLM によるコードレビューに利用できます。
主な機能
- 01レビューとインラインコメントのスレッド表示
- 02レビュアーや状態によるスレッドの絞り込み
- 03コメントへの返信とスレッドの解決
- 04インラインコメント付きレビューの作成と送信
- 05自動化向けの構造化 JSON 出力
活用シーン
- 01Pull Request の対応すべきフィードバックの収集
- 02レビューコメントへの返信の自動化
- 03ターミナルからのコードレビュー送信
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ agynio/ gh-pr-review --skill gh-pr-reviewインストール後、Claude Code で/gh-pr-reviewを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.md.gitignoreCODEOWNERSLICENSEgo.modgo.sum.github/workflows/release.ymlci.ymlcmd/comments_test.godeps.gocomments.gooutput.goreview_view.gothreads.gothreads_test.goreview.goreview_view_test.goreview_test.goroot.gocmd/testdata/report_response.jsondocs/AGENTS.mdSCHEMAS.mdUSAGE.mdinternal/comments/service_test.goservice.gointernal/ghcli/ghcli.gointernal/report/query.gobuilder_test.gobuilder.godomain.go詳細
gh-pr-review
ターミナルからインライン PR レビューコメントに完全にアクセスでき、LLM に適した JSON 出力を提供する GitHub CLI 拡張機能です。
使用する場面
次の操作が必要な場合に、このスキルを使用します。
- プルリクエストのインラインレビューコメントやスレッドを表示する
- レビューコメントにプログラムから返信する
- レビュースレッドを解決済み、または未解決にする
- インラインコメントを付けて PR レビューを作成、送信する
- 自動化されたワークフローで PR レビューのコンテキストにアクセスする
- 状態、レビュアー、解決状況でレビューを絞り込む
このツールは、特に次の用途で役立ちます。
- 自動 PR レビューワークフロー
- LLM ベースのコードレビュエージェント
- ターミナルベースの PR レビュープロセス
- 複数回の API 呼び出しを行わずに、構造化されたレビュー情報を取得する
インストール
まず、拡張機能がインストールされていることを確認します。
gh extension install agynio/gh-pr-review
主なコマンド
1. すべてのレビューとスレッドを表示する
インラインコメントとスレッドへの返信を含む、完全なレビューコンテキストを取得します。
gh pr-review review view -R owner/repo --pr <number>
便利な絞り込みオプション:
--unresolved- 未解決のスレッドのみを表示します--reviewer <login>- 特定のレビュアーで絞り込みます--states <APPROVED|CHANGES_REQUESTED|COMMENTED|DISMISSED>- レビューの状態で絞り込みます--tail <n>- スレッドごとに最後の n 件の返信のみを残します--not_outdated- 古くなったスレッドを除外します
出力: レビュー、コメント、thread_ids、解決状況を含む構造化 JSON です。
2. レビュースレッドに返信する
既存のインラインコメントスレッドに返信します。
gh pr-review comments reply <pr-number> -R owner/repo \
--thread-id <PRRT_...> \
--body "Your reply message"
3. レビュースレッドを一覧表示する
絞り込んだレビュースレッドの一覧を取得します。
gh pr-review threads list -R owner/repo <pr-number> --unresolved --mine
4. スレッドを解決済み/未解決にする
スレッドを解決済みとしてマークします。
gh pr-review threads resolve -R owner/repo <pr-number> --thread-id <PRRT_...>
5. レビューを作成して送信する
保留中のレビューを開始します。
gh pr-review review --start -R owner/repo <pr-number>
保留中のレビューにインラインコメントを追加します。
gh pr-review review --add-comment \
--review-id <PRR_...> \
--path <file-path> \
--line <line-number> \
--body "Your comment" \
-R owner/repo <pr-number>
レビューを送信します。
gh pr-review review --submit \
--review-id <PRR_...> \
--event <APPROVE|REQUEST_CHANGES|COMMENT> \
--body "Overall review summary" \
-R owner/repo <pr-number>
出力形式
すべてのコマンドは、プログラムでの利用に最適化された構造化 JSON を返します。
- 一貫したフィールド名
- 安定した並び順
- null 値の代わりにフィールドを省略
- 必要なデータのみ(URL や不要なメタデータなし)
- スレッドへの返信をあらかじめ結合
出力構造の例:
{
"reviews": [
{
"id": "PRR_...",
"state": "CHANGES_REQUESTED",
"author_login": "reviewer",
"comments": [
{
"thread_id": "PRRT_...",
"path": "src/file.go",
"author_login": "reviewer",
"body": "Consider refactoring this",
"created_at": "2024-01-15T10:30:00Z",
"is_resolved": false,
"is_outdated": false,
"thread_comments": [
{
"author_login": "author",
"body": "Good point, will fix",
"created_at": "2024-01-15T11:00:00Z"
}
]
}
]
}
]
}
ベストプラクティス
- リポジトリを明示的に指定するには、必ず
-R owner/repoを使用します - 対応が必要なコメントに絞るには、
--unresolvedと--not_outdatedを使用します - 返信に備えて、
review viewの出力から thread_id の値を保存します - 特定のレビューコメントを扱う場合は、レビュアーで絞り込みます
- 最新の返信のみを残して出力サイズを減らすには、
--tail 1を使用します - テキストをスクレイピングするのではなく、JSON 出力を解析します
よくあるワークフロー
現在の PR の未解決コメントを取得する
gh pr-review review view --unresolved --not_outdated -R owner/repo --pr $(gh pr view --json number -q .number)
すべての未解決コメントに返信する
- 未解決のスレッドを取得します:
gh pr-review threads list --unresolved -R owner/repo <pr> - 各 thread_id に返信します:
gh pr-review comments reply <pr> -R owner/repo --thread-id <id> --body "..." - 必要に応じて解決します:
gh pr-review threads resolve <pr> -R owner/repo --thread-id <id>
インラインコメント付きのレビューを作成する
- 開始します:
gh pr-review review --start -R owner/repo <pr> - コメントを追加します:
gh pr-review review --add-comment -R owner/repo <pr> --review-id <PRR_...> --path <file> --line <num> --body "..." - 送信します:
gh pr-review review --submit -R owner/repo <pr> --review-id <PRR_...> --event REQUEST_CHANGES --body "Summary"
重要な注意事項
- すべての ID は GraphQL 形式です(レビューは PRR_...、スレッドは PRRT_...)
- コマンドは純粋な GraphQL を使用します(REST API へのフォールバックはありません)
- 絞り込み条件に一致するデータがない場合、空の配列
[]が返されます --include-comment-node-idフラグを指定すると、必要に応じて PRRC_... ID が追加されます- スレッドへの返信は created_at の昇順で並びます
ドキュメントへのリンク
- 使用ガイド:docs/USAGE.md
- JSON スキーマ:docs/SCHEMAS.md
- エージェントのワークフロー:docs/AGENTS.md
- ブログ記事:https://agyn.io/blog/gh-pr-review-cli-agent-workflows
コメント
Markdown 対応