用途
该技能用于在 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