← ClaudeAtlas

gh-issue-submitlisted

用 gh CLI 提交高质量 GitHub issue:模板发现、查重(含已关闭 issue 阅读)、源码调研根因、权限切换陷阱、computer use 回退、提交与验证
Linearl/reasonix_skill_repo · ★ 2 · AI & Automation · score 63
Install: claude install-skill Linearl/reasonix_skill_repo
# GitHub Issue 提交技能(gh-issue-submit) 用 `gh` CLI 把功能请求 / bug 报告 / 改进建议提交到任意 GitHub 仓库 issue 的完整流程。包含模板发现、查重、权限陷阱处理和提交验证。 ## 适用场景 - 用户要求"给某仓库提个 issue / feature request / bug report" - 用户给了 issues/new 链接(含 `?template=...` 参数)或直接点名仓库 - 用户要求"帮我写并提交 issue" ## 核心步骤 ### 1. 解析目标仓库与模板 - 从链接或用户描述提取 `owner/repo`。 - **模板位置因默认分支而异**:先查仓库默认分支和分支列表: ```bash gh api repos/<owner>/<repo>/branches --jq '.[].name' gh api repos/<owner>/<repo> --jq '.default_branch' ``` - 列出 ISSUE_TEMPLATE 目录(分别在默认分支和 main-v2/v2 等分支下找): ```bash gh api "repos/<owner>/<repo>/contents/.github/ISSUE_TEMPLATE?ref=<branch>" --jq '.[].name' ``` - **注意格式差异**:有的仓库用 `.md` 模板(GitHub 自动表单),有的用 `.yml` form 模板(Version line dropdown / textarea 字段)。用户给的 `?template=xxx.yml` 链接可能与实际文件名不符(如 v1 分支是 `feature_request.md`、v2 分支是 `feature_request.yml`)——以实际文件为准。 - 读取模板内容了解必填字段: ```bash gh api "repos/<owner>/<repo>/contents/.github/ISSUE_TEMPLATE/<file>?ref=<branch>" --jq '.content' | base64 -d ``` ### 2. 查重(必做,避免重复 issue) ```bash gh api "search/issues?q=repo:<owner>/<repo>+is:issue+in:title+<关键词>" --jq '.items[] | {number, title, state}' ``` - 用多个关键词组合搜(功能名、症状、中英文都试)。 - 找到相关 open issue 时:**不重复提交**——要么在已有 issue 下评论补充,要么新 issue 明确区分视角并引用旧 issue 编号(如"这是 #XXXX 提到的 follow-up")。 - **搜索限制**:`search/issues` 的 q 中 OR/AND 操作符合计不能超过 5 个(超限报 422 Validation Failed),多关键词拆成多个查询分别搜(如会话排序 / 会话分组各搜一次)。 - **已关闭的旧 issue 也要读**:搜到相关但已 closed 的 issue 时,用 `gh issue view <编号> --comments` 读关闭原因与维护者评论—— - 若维护者留下"场景未覆盖可开 focused issue"之