GitHub重复问题检测Skill github-issue-dedupe

这是一个自动检测GitHub重复问题的工具,利用语义搜索和关键词匹配技术,帮助开发者高效管理问题跟踪,并支持通过GitHub Actions实现自动化。关键词:GitHub、重复问题、检测、语义搜索、关键词匹配、GitHub Actions、自动化、DevOps。

DevOps 0 次安装 0 次浏览 更新于 3/15/2026

name: github-issue-dedupe description: 使用语义搜索和关键词匹配检测重复的GitHub问题。当被要求查找重复项、检查类似问题或设置自动重复检测时使用。 license: MIT

GitHub 重复问题检测

使用多策略搜索查找重复的GitHub问题。可以手动运行或通过GitHub Actions自动运行。

工作流程

1. 收集问题上下文

从目标问题中提取关键信息:

  • 问题编号和标题
  • 完整正文内容
  • 错误消息或堆栈跟踪
  • 关键词和技术术语
  • 症状或行为描述

2. 搜索策略

使用 gh 通过多种策略搜索相关问题:

  • 基于标题和正文的关键词搜索
  • 搜索类似的错误消息
  • 查找相似的症状

3. 候选检查

对于每个潜在的重复项:

  • 使用 gh issue view <number> 查看完整问题
  • 比较:
    • 根本原因(相同的基本问题?)
    • 症状(相同的行为?)
    • 错误消息(精确匹配或非常相似?)
    • 受影响的组件(相同的代码区域?)

高置信度指标:

  • 相同的错误消息
  • 相同的重现步骤
  • 相同根本原因但不同描述
  • 一个问题引用另一个

低置信度(非重复项):

  • 相似症状但不同原因
  • 相关但独立的错误
  • 相同组件但不同行为

4. 报告发现

如果找到重复项:

在目标问题上发布评论:

gh issue comment <number> --body "这可能是 #123 和 #456 的重复项。"

格式规则:

  • 单个重复项:“这可能是 #123 的重复项。”
  • 两个重复项:“这可能是 #123 和 #456 的重复项。”
  • 三个或更多重复项:“这可能是 #123、#456 和 #789 的重复项。”

仅在高度置信(90%+ 确定)时评论。 如果不确定,不执行任何操作。

示例

示例1:明确重复项

目标问题 #150:

标题:"下拉菜单在移动Safari上保持打开"
正文:点击菜单项不会关闭iOS上的下拉菜单

搜索过程:

gh issue list --search "下拉菜单移动 safari"
gh issue list --search "菜单不关闭"
gh issue view 87  # 找到类似问题

问题 #87:

标题:"移动菜单选择后不关闭"
正文:在iOS Safari上,点击项后菜单保持打开

判断:重复项

  • 相同症状(菜单保持打开)
  • 相同平台(iOS Safari)
  • 相同根本原因

示例2:相似但非重复项

目标问题 #200:

标题:"表单提交时验证错误"
错误:"无法读取 null 的属性 'value'"

搜索过程:

gh issue list --search "表单验证"
gh issue list --search "无法读取属性值 null"
gh issue view 175

问题 #175:

标题:"表单提交失败"
错误:"无法读取未定义的属性 'email'"

判断:非重复项

  • 不同错误消息
  • 不同空引用(value vs email)
  • 相关区域但不同错误

示例3:多个重复项

目标问题 #300:

标题:"构建失败,出现 '模块未找到' 错误"
错误:Error: Cannot find module './config'

搜索结果:

  • 问题 #250:相同错误,相同模块
  • 问题 #280:相同错误,相同模块
  • 问题 #290:不同模块错误(非重复项)

操作:

gh issue comment 300 --body "这可能是 #250 和 #280 的重复项。"