关于 github-pr-query
用于查询当前或指定 GitHub 仓库中的拉取请求。它支持 GitHub CLI 选项和可选的 jq 筛选,也可先返回结构与数据大小信息,再获取完整数据。
主要功能
- 01查询当前或指定仓库
- 02按状态、作者、应用或搜索筛选
- 03使用 jq 转换 JSON
- 04先查看结构和数据大小
适用场景
- 01列出开放的拉取请求
- 02查找等待审查的 PR
- 03检查 PR 标签或作者
- 04筛选指定的审查反馈
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ github/ gh-aw --skill github-pr-query安装后在 Claude Code 中输入/github-pr-query确认已加载。
附带文件query-prs.sh
详细介绍
GitHub 拉取请求查询技能
借助内置的 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(大多数系统默认已安装)
评论
支持 Markdown