用途
该技能面向 GitHub 仓库的 Issue 管理,覆盖创建、搜索、分类(triage)、指派、评论、关闭与重新打开等常见操作。每个操作都先给出 gh CLI 的用法,再给出 curl 调用 GitHub REST API 的回退方案。
主要能力
- 查看与筛选 Issue:列出 Issue、按状态或标签筛选、按指派人筛选、按关键词搜索、查看单个 Issue 详情。
- 创建 Issue:支持指定标题、正文、标签和指派人;推荐在创建功能类 Issue 前先搜索已有 Issue、检查仓库标签、引用相关 Issue,避免重复。
- 管理 Issue:添加或移除标签、指派人员、发表评论、关闭(可指定原因)与重新打开。
- 关联 PR:在 PR 正文中使用 Closes #42、Fixes #42、Resolves #42 等关键词,合并后自动关闭对应 Issue;也可用 gh issue develop 从 Issue 创建分支。
- 分类工作流:列出待分类 Issue、阅读并归类、应用标签与优先级、指派负责人、必要时添加分类备注。
- 批量操作:结合 shell 脚本对带特定标签的 Issue 批量关闭等。
使用方式
前置条件:已通过 GitHub 认证(参见 github-auth 技能);位于带有 GitHub 远程仓库的 git 仓库内,或显式指定仓库。
技能提供一段初始化脚本,用于判断使用 gh 还是 git 回退,并从环境变量、~/.hermes/.env 或 ~/.git-credentials 中获取 GITHUB_TOKEN,同时从 git remote 解析出 OWNER 与 REPO。
常用命令示例:
- 列出 Issue:gh issue list;按标签:gh issue list --state open --label "bug";按指派人:gh issue list --assignee @me;搜索:gh issue list --search "authentication error" --state all;查看:gh issue view 42。
- 创建 Issue:gh issue create --title "..." --body "..." --label "bug,backend" --assignee "username";长正文建议写入临时 markdown 文件并使用 --body-file。
- 编辑标签:gh issue edit 42 --add-label "priority:high,bug";移除:gh issue edit 42 --remove-label "needs-triage"。
- 指派:gh issue edit 42 --add-assignee username 或 @me。
- 评论:gh issue comment 42 --body "...";含反引号或多行内容时建议使用 --body-file。
- 关闭与重开:gh issue close 42、gh issue close 42 --reason "not planned"、gh issue reopen 42。
- 从 Issue 创建分支:gh issue develop 42 --checkout。
curl 回退方案覆盖对应的 REST 端点,例如 GET /repos/{o}/{r}/issues、POST /repos/{o}/{r}/issues、POST /repos/{o}/{r}/issues/N/labels、POST /repos/{o}/{r}/issues/N/assignees、POST /repos/{o}/{r}/issues/N/comments、PATCH /repos/{o}/{r}/issues/N、GET /search/issues?q=... 等。
技能还提供 Bug 报告模板与功能请求模板,以及创建功能类 Issue 前的推荐流程:搜索已有 Issue、检查仓库标签、引用父级或相关 Issue、优先更新已有 Issue 而非重复创建、创建后立即验证标题、标签、URL 与渲染后的正文。
适用场景
- 日常仓库维护与缺陷跟踪。
- 功能需求收集与分类。
- 团队协作中的指派与进度评论。
- 将 Issue 与 PR 关联以自动关闭。
- 对带特定标签的 Issue 执行批量操作。
限制
- 需要已认证的 GitHub 访问权限。
- 需要位于带 GitHub 远程仓库的 git 仓库内,或显式指定仓库。
- 使用 curl 回退时需要 GITHUB_TOKEN。
- 资料未提供收费、价格、平台支持范围或效果保证等信息。