Skip to main content

github-pr-query

Query GitHub pull requests with jq filtering and reusable selectors.

Source facts

Repository
github/gh-aw
Last source activity
June 9, 2026 at 14:24
Detected SKILL.md language
English
Stars
5,381
Forks
584

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
github-pr-query
description
Query GitHub pull requests with jq filtering and reusable selectors.
# GitHub Pull Request Query Skill Query GitHub pull requests efficiently with built-in jq filtering. ## Important: jq Parameter is Optional The `--jq` parameter is **optional**. Without `--jq`, this skill returns **schema and data size information** instead of full data. Use this to avoid oversized responses and inspect structure before targeted queries. Use `--jq '.'` to get all data, or use a more specific filter for targeted results. ## Usage Use this skill to query pull requests from the current repository or any specified repository. ### Basic Query (Returns Schema Only) To list pull requests from the current repository: ```bash ./query-prs.sh # Returns schema and data size, not full data ``` ### Get All Data To get all PR data: ```bash ./query-prs.sh --jq '.' ``` ### With Repository To query a specific repository: ```bash ./query-prs.sh --repo owner/repo ``` ### With jq Filtering Use the `--jq` argument to filter and transform the output: ```bash # 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})' ``` ### Common Options - `--state`: Filter by state (open, closed, merged, all). Default: open - `--limit`: Maximum number of PRs to fetch. Default: 30 - `--repo`: Repository in owner/repo format. Default: current repo - `--author`: Filter PRs by author login - `--app`: Filter PRs by GitHub App author - `--search`: Apply GitHub issue/PR search syntax - `--jq`: (Optional) jq expression for filtering/transforming output. If omitted, returns schema info ### Example Queries **Find large PRs (many changed files):** ```bash ./query-prs.sh --jq '.[] | select(.changedFiles > 10) | {number, title, changedFiles}' ``` **Get PRs awaiting review:** ```bash ./query-prs.sh --jq '.[] | select(.reviewDecision == "REVIEW_REQUIRED") | {number, title, author: .author.login}' ``` **Get PRs authored by GitHub Actions app activity context:** ```bash ./query-prs.sh --app github-actions --jq '.[] | {number, title, author: .author.login}' ``` **Find in-scope review feedback (team/collaborator + trusted automation):** ```bash # 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")] }' ``` **Ignore external review feedback:** ```bash ./query-prs.sh --jq \ '.[] | {number, title, external_reviews: [.reviews[]? | select(.authorAssociation == "CONTRIBUTOR" or .authorAssociation == "FIRST_TIME_CONTRIBUTOR" or .authorAssociation == "FIRST_TIMER" or .authorAssociation == "NONE")] }' ``` **List PRs with their labels:** ```bash ./query-prs.sh --jq '.[] | {number, title, labels: [.labels[].name]}' ``` ## Output Format The script outputs JSON by default, making it easy to pipe through jq for additional processing. ## Requirements - GitHub CLI (`gh`) authenticated - `jq` for filtering (installed by default on most systems)
View on GitHub