用途
GitHub Duplicate Issue Checker 用于分析一个 GitHub issue,判断它是否为重复问题,并查找相关的 issue 与 PR。
适用场景:
- 新 issue 提交后,需要在分诊前进行重复检查
- 搜索与某个特定 issue 相关的已有 issue 或 PR
- 决定是否将某个 issue 作为重复问题关闭
不适用场景:
- 用户想要通用的 issue 摘要(应使用 github-review-issue)
- 用户想要 PR 审查(应使用 github-review-pr)
- 用户想要创建或编辑 issue
主要能力
该技能通过多步骤流程完成重复检查:
- 获取 issue 详情:使用
gh issue view拉取编号、标题、正文、标签、作者、创建时间与评论,提取关键词,检查评论中的讨论与被引用的 issue/PR,并对 issue 类型进行分类(bug 报告 / 功能请求 / 问题 / 其他),同时记录错误信息、堆栈跟踪和具体文件名。 - 多角度搜索:单一搜索不够,需使用多种策略,包括关键词搜索(至少 2-3 种变体)、PR 搜索、基于标签的搜索(若存在标签)以及交叉引用检查。
- 分析候选:对搜索结果中相似度最高的 5-10 个 issue 获取详情,判断相似性是表面的(仅标题)还是实质的(同一问题),检查是否共享同一根因、是否已解决(已关闭且有解决评论),并查找评论中提到的相关 PR。
- 重复判定标准:满足以下任一条件即标记为重复——相同的 bug/错误(相同错误信息、相同复现步骤)、相同的功能请求(措辞不同但期望功能一致)、相同的问题(问法不同但寻求同一答案)、相同的根因(症状不同但底层原因相同)。以下情况标记为不重复——相似领域但具体问题不同、同一功能但视角或范围不同、先前 issue 已解决且本次为回归。
- 输出结果:分为三种情况——发现重复(给出原始 issue 编号、标题、URL、状态、证据与建议动作)、发现相关条目(列出相关 issue 与 PR 及其关系)、未发现重复(给出搜索摘要、检查数量与评估,并建议标签)。
使用方式
输入 $ARGUMENTS 为 issue 编号或 GitHub URL。
- 若为 URL(例如 https://github.com/owner/repo/issues/749):提取 owner/repo,使用
--repo标志。 - 若仅为编号:通过
gh repo view --json nameWithOwner -q .nameWithOwner检测当前仓库。
核心命令示例:
获取 issue 详情:
gh issue view $ARGUMENTS --json number,title,body,labels,author,createdAt,comments
关键词搜索:
gh search issues "<original keywords>" --repo {owner/repo} --limit 20
gh search issues "<synonym keywords>" --repo {owner/repo} --limit 20
gh search issues "<error code or filename>" --repo {owner/repo} --limit 15
PR 搜索:
gh search prs "<keywords>" --repo {owner/repo} --limit 15
标签搜索:
gh issue list --label "<related label>" --state all --limit 20 --json number,title,state --repo {owner/repo}
交叉引用检查:
gh api repos/{owner}/{repo}/issues/{issue-number}/timeline --jq '.[] | select(.event == "cross-referenced")'
候选详情获取:
gh issue view <number> --repo {owner/repo} --json number,title,body,state,comments
适用场景
- 开源项目维护者在新 issue 进入时快速判断是否重复,减少重复劳动。
- 分诊流程中作为自动化或半自动化步骤,辅助决定关闭或合并 issue。
- 查找与某个 issue 相关的历史讨论、修复 PR 或类似功能请求。
限制
- 依赖 GitHub CLI(gh)及其认证环境。
- 仅针对 issue 的重复检查,不提供通用 issue 摘要或 PR 审查。
- 不负责创建或编辑 issue。
- 重复判定基于搜索与人工设定的标准,最终结论仍需使用者确认。
- 关于收费、价格、平台支持范围等具体信息,资料中暂未提供。