mcpField
G
github-issue-query

github-issue-query

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

github-issue-query について

オプションのjqフィルターを使ってGitHub issueを検索するスキルです。現在または指定したリポジトリを対象にでき、初期状態では全件取得の前に構造とデータ量を確認できます。

主な機能

  1. 01現在または指定リポジトリを検索
  2. 02状態と取得数でissueを絞り込み
  3. 03jqでJSON出力をフィルタリング
  4. 04構造とデータ量を標準で表示

活用シーン

  1. 01検索前にissueデータの構造を確認
  2. 02条件に合うissueを検索
  3. 03結果から指定フィールドを抽出

インストール

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

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

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

同梱ファイルquery-issues.sh

詳細

GitHub Issue Query スキル

組み込みの jq フィルタリングを使って、GitHub の Issue を効率的に検索します。

重要:jq パラメーターは任意です

--jq パラメーターは任意です。--jq を指定しない場合、このスキルは全データではなく、スキーマとデータサイズの情報を返します。 これを使うと、レスポンスが大きくなりすぎるのを防ぎ、対象を絞った検索の前に構造を確認できます。

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

使い方

このスキルを使って、現在のリポジトリまたは指定したリポジトリの Issue を検索します。

基本的な検索(スキーマのみを返します)

現在のリポジトリの Issue を一覧表示するには:

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

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

./query-issues.sh --jq '.'
リポジトリを指定

特定のリポジトリを検索するには:

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

--jq 引数を使って、出力をフィルタリングおよび変換します:

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

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

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

# Get issues with specific label
./query-issues.sh --jq '.[] | select(.labels | map(.name) | index("bug"))'

# Count issues by state
./query-issues.sh --jq 'group_by(.state) | map({state: .[0].state, count: length})'
よく使うオプション
  • --state:状態(open、closed、all)でフィルタリングします。デフォルト:open
  • --limit:取得する Issue の最大数。デフォルト:30
  • --repo:owner/repo 形式のリポジトリ。デフォルト:現在のリポジトリ
  • --jq:(任意)出力をフィルタリング/変換する jq 式。省略するとスキーマ情報を返します
検索例

コメント数の多い Issue を検索:

./query-issues.sh --jq '.[] | select(.comments.totalCount > 5) | {number, title, comments: .comments.totalCount}'

担当者が割り当てられた Issue を取得:

./query-issues.sh --jq '.[] | select(.assignees | length > 0) | {number, title, assignees: [.assignees[].login]}'

ラベル付きの Issue を一覧表示:

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

プロジェクトボードの割り当てを取得:

./query-issues.sh --jq '.[] | {number, title, projects: [.projectItems.nodes[]? | .project?.url]}'

古い Issue を検索(作成から30日以上経過):

./query-issues.sh --jq '.[] | select(.createdAt < (now - 2592000 | strftime("%Y-%m-%dT%H:%M:%SZ")))'

出力形式

スクリプトはデフォルトで JSON を出力するため、追加処理のために jq に渡しやすくなっています。

必要条件

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

コメント