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. 03用 jq 筛选 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 查询技能

使用内置的 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