SuperAPI AI 工具集

gh-search-issues

编程与开发

查看项目

更新于 10-15 08:09

技能介绍

用途

该技能用于在 GitHub 上跨多个仓库或组织搜索 issue。它基于 GitHub CLI 的 gh search issues 命令,使用 GitHub 搜索查询语法和限定符,适合需要跨仓库、跨组织或使用复杂条件查找 issue 的场景。

主要能力

  • 跨仓库或组织搜索 issue,可指定 owner、repo、语言、可见性、是否归档等仓库过滤条件。
  • 按用户过滤:作者、指派人、提及用户、评论者、团队提及。
  • 按 issue 属性过滤:标签、状态(open/closed)、里程碑、是否锁定、是否无标签。
  • 按互动指标过滤:评论数、反应数、互动总数,支持比较运算符(>、>=、<、<=、..)。
  • 按日期过滤:创建日期、更新日期、关闭日期。
  • 搜索范围限定:可限定在标题、正文或评论中搜索。
  • 可选择包含 pull request(--include-prs)。
  • 输出控制:限制结果数量、排序、排序方向、JSON 输出、在浏览器中打开。

使用方式

基本语法:

gh search issues [<query>] [flags]

常用示例:

  • 查找自己在全 GitHub 上的开放 issue:
gh search issues --author @me --state open
  • 在特定组织中查找未分配的 bug:
gh search issues --label bug --no-assignee --state open --owner kubernetes
  • 在特定仓库中查找高讨论度的 issue:
gh search issues --comments ">50" --state open --repo microsoft/vscode
  • 跨仓库查找陈旧 issue:
gh search issues --state open --updated "<2023-01-01" --owner myorg
  • 在组织中同时搜索 issue 和 PR:
gh search issues "authentication" --include-prs --state open --owner github
  • 使用排除语法(必须使用 -- 分隔符):
gh search issues -- "crash -label:duplicate -label:wontfix" --repo cli/cli
  • 按里程碑跨仓库查找:
gh search issues --milestone v2.0 --state open --owner golang
  • 仅在标题中搜索特定语言仓库的 issue:
gh search issues "error in:title" --state open --language rust

关键语法规则

  • 排除和否定必须使用查询语法并配合 -- 分隔符,例如 gh search issues -- "bug -label:duplicate"。
  • 不要在同一命令中混用 flag 语法和查询语法。
  • 比较运算符需要加引号,例如 --comments ">10"。
  • 多词搜索需要加引号,例如 gh search issues "memory leak"。
  • 带空格的标签需要整体加引号,例如 gh search issues -- 'crash label:"bug fix"'。
  • PowerShell 中使用排除语法时需加 --%,例如 gh --% search issues -- "bug -label:duplicate"。
  • 特殊值 @me 表示当前认证用户。
  • 字段限定符 in: 可限定搜索字段:in:title、in:body、in:comments。

适用场景

  • 需要跨多个仓库或组织搜索 issue。
  • 需要在指定仓库(非当前目录仓库)中搜索 issue。
  • 需要跨 GitHub 搜索自己的开放 issue。
  • 需要使用复杂查询限定符(如评论数、排除标签等)进行搜索。

限制与注意事项

  • 不适用于当前仓库的 issue 列表操作,此类场景应使用 gh issue list。
  • 当用户说“我的 issue”或“这里的 issue”且上下文明确为当前仓库时,不应使用本技能。
  • 使用前需确保已安装 GitHub CLI 并完成认证(gh auth login)。
  • 排除语法必须使用 -- 分隔符,否则可能被 shell 错误解析。
  • 默认结果数量限制为 30,可通过 --limit 调整。
  • JSON 输出字段包括:assignees、author、authorAssociation、body、closedAt、commentsCount、createdAt、id、isLocked、isPullRequest、labels、number、repository、state、title、updatedAt、url。

安装检查

如果 gh 命令未找到:

which gh

安装说明参见:https://cli.github.com/manual/installation

如果未认证:

gh auth login

相关资源

GitHub 搜索语法文档:https://docs.github.com/search-github/searching-on-github/searching-issues-and-pull-requests

相关技能:gh-search-code、gh-search-commits、gh-search-prs、gh-search-repos