mcpField
G
gh-pr-review

gh-pr-review

github.com/agynioテスト・品質193349 回インストール28 週間前に更新
リポジトリ

gh-pr-review について

gh-pr-review は、ターミナルから GitHub の Pull Request に付いたレビューコメントやスレッドを扱う CLI 拡張です。構造化 JSON を出力し、自動化や LLM によるコードレビューに利用できます。

主な機能

  1. 01レビューとインラインコメントのスレッド表示
  2. 02レビュアーや状態によるスレッドの絞り込み
  3. 03コメントへの返信とスレッドの解決
  4. 04インラインコメント付きレビューの作成と送信
  5. 05自動化向けの構造化 JSON 出力

活用シーン

  1. 01Pull Request の対応すべきフィードバックの収集
  2. 02レビューコメントへの返信の自動化
  3. 03ターミナルからのコードレビュー送信

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/agynio/gh-pr-review --skill gh-pr-review

インストール後、Claude Code で/gh-pr-reviewを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

README.md
.gitignore
CODEOWNERS
LICENSE
go.mod
go.sum
.github/workflows/
release.yml
ci.yml
cmd/
comments_test.go
deps.go
comments.go
output.go
review_view.go
threads.go
threads_test.go
review.go
review_view_test.go
review_test.go
root.go
cmd/testdata/
report_response.json
docs/
AGENTS.md
SCHEMAS.md
USAGE.md
internal/comments/
service_test.go
service.go
internal/ghcli/
ghcli.go
internal/report/
query.go
builder_test.go
builder.go
domain.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"
            }
          ]
        }
      ]
    }
  ]
}

ベストプラクティス

  1. リポジトリを明示的に指定するには、必ず -R owner/repo を使用します
  2. 対応が必要なコメントに絞るには、--unresolved と --not_outdated を使用します
  3. 返信に備えて、review view の出力から thread_id の値を保存します
  4. 特定のレビューコメントを扱う場合は、レビュアーで絞り込みます
  5. 最新の返信のみを残して出力サイズを減らすには、--tail 1 を使用します
  6. テキストをスクレイピングするのではなく、JSON 出力を解析します

よくあるワークフロー

現在の PR の未解決コメントを取得する
gh pr-review review view --unresolved --not_outdated -R owner/repo --pr $(gh pr view --json number -q .number)
すべての未解決コメントに返信する
  1. 未解決のスレッドを取得します:gh pr-review threads list --unresolved -R owner/repo <pr>
  2. 各 thread_id に返信します:gh pr-review comments reply <pr> -R owner/repo --thread-id <id> --body "..."
  3. 必要に応じて解決します:gh pr-review threads resolve <pr> -R owner/repo --thread-id <id>
インラインコメント付きのレビューを作成する
  1. 開始します:gh pr-review review --start -R owner/repo <pr>
  2. コメントを追加します:gh pr-review review --add-comment -R owner/repo <pr> --review-id <PRR_...> --path <file> --line <num> --body "..."
  3. 送信します: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 の昇順で並びます

ドキュメントへのリンク

コメント