github-issue-query について
オプションのjqフィルターを使ってGitHub issueを検索するスキルです。現在または指定したリポジトリを対象にでき、初期状態では全件取得の前に構造とデータ量を確認できます。
主な機能
- 01現在または指定リポジトリを検索
- 02状態と取得数でissueを絞り込み
- 03jqでJSON出力をフィルタリング
- 04構造とデータ量を標準で表示
活用シーン
- 01検索前にissueデータの構造を確認
- 02条件に合うissueを検索
- 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(ほとんどのシステムではデフォルトでインストールされています)
コメント
Markdown 対応