mcpField
G
github-pr-query

github-pr-query

github.com/github開発5.5k64 回インストール今日更新
リポジトリ

github-pr-query について

現在または指定した GitHub リポジトリのプルリクエストを検索するスキルです。GitHub CLI のオプションと任意の jq フィルターに対応し、全データの取得前にスキーマとデータ量を確認できます。

主な機能

  1. 01現在または指定リポジトリの検索
  2. 02状態、作成者、アプリ、検索による絞り込み
  3. 03jq による JSON の変換
  4. 04スキーマとデータ量の事前確認

活用シーン

  1. 01オープン中のプルリクエストの一覧
  2. 02レビュー待ち PR の検索
  3. 03PR のラベルや作成者の確認
  4. 04指定したレビューコメントへの絞り込み

インストール

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

$npx skills add https://github.com/github/gh-aw --skill github-pr-query

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

同梱ファイルquery-prs.sh

詳細

GitHub Pull Request クエリスキル

組み込みの jq フィルタリングを使用して、GitHub のプルリクエストを効率的にクエリします。

重要:jq パラメーターは省略可能です

--jq パラメーターは省略可能です。--jq を指定しない場合、このスキルはデータ全体ではなく、スキーマとデータサイズの情報を返します。 これにより、応答が大きくなりすぎるのを防ぎ、対象を絞ったクエリの前に構造を確認できます。

すべてのデータを取得するには --jq '.' を使用するか、対象を絞った結果を得るには、より具体的なフィルターを使用してください。

使用方法

このスキルを使用して、現在のリポジトリまたは指定したリポジトリからプルリクエストをクエリします。

基本的なクエリ(スキーマのみを返します)

現在のリポジトリからプルリクエストを一覧表示するには:

./query-prs.sh
# Returns schema and data size, not full data
すべてのデータを取得する

すべての PR データを取得するには:

./query-prs.sh --jq '.'
リポジトリを指定する

特定のリポジトリをクエリするには:

./query-prs.sh --repo owner/repo
jq によるフィルタリング

出力のフィルタリングや変換には、--jq 引数を使用してください:

# Get only open PRs
./query-prs.sh --jq '.[] | select(.state == "open")'

# Get PR numbers and titles
./query-prs.sh --jq '.[] | {number, title}'

# Get PRs by a specific author
./query-prs.sh --jq '.[] | select(.author.login == "username")'

# Get merged PRs from last week
./query-prs.sh --jq '.[] | select(.mergedAt != null)'

# Count PRs by state
./query-prs.sh --jq 'group_by(.state) | map({state: .[0].state, count: length})'
主なオプション
  • --state:状態(open、closed、merged、all)でフィルタリングします。デフォルト:open
  • --limit:取得する PR の最大数。デフォルト:30
  • --repo:owner/repo 形式のリポジトリ。デフォルト:現在のリポジトリ
  • --author:作成者のログイン名で PR をフィルタリングします
  • --app:GitHub App の作成者で PR をフィルタリングします
  • --search:GitHub の Issue/PR 検索構文を適用します
  • --jq:(省略可能)出力をフィルタリング/変換する jq 式。省略した場合はスキーマ情報を返します
よく使うクエリの例

変更ファイル数の多い、大規模な PR を見つける:

./query-prs.sh --jq '.[] | select(.changedFiles > 10) | {number, title, changedFiles}'

レビュー待ちの PR を取得する:

./query-prs.sh --jq '.[] | select(.reviewDecision == "REVIEW_REQUIRED") | {number, title, author: .author.login}'

GitHub Actions アプリのアクティビティコンテキストで作成された PR を取得する:

./query-prs.sh --app github-actions --jq '.[] | {number, title, author: .author.login}'

対象範囲内のレビューコメント(チーム/コラボレーターおよび信頼できる自動化)を見つける:

# Trusted automation is matched by login; humans are matched by association.
./query-prs.sh --jq \
  '.[] | {number, title, reviews: [.reviews[]? | select(.author.login == "github-actions[bot]" or .author.login == "app/github-copilot" or .authorAssociation == "MEMBER" or .authorAssociation == "OWNER" or .authorAssociation == "COLLABORATOR")] }'

外部からのレビューコメントを除外する:

./query-prs.sh --jq \
  '.[] | {number, title, external_reviews: [.reviews[]? | select(.authorAssociation == "CONTRIBUTOR" or .authorAssociation == "FIRST_TIME_CONTRIBUTOR" or .authorAssociation == "FIRST_TIMER" or .authorAssociation == "NONE")] }'

ラベル付きの PR を一覧表示する:

./query-prs.sh --jq '.[] | {number, title, labels: [.labels[].name]}'

出力形式

スクリプトはデフォルトで JSON を出力するため、追加の処理を行う際に jq へパイプで渡せます。

要件

  • 認証済みの GitHub CLI(gh)
  • フィルタリング用の jq(ほとんどのシステムにデフォルトでインストールされています)

コメント