SuperAPI AI 工具集

new-issue

编程与开发

查看项目

更新于 10-16 03:21

技能介绍

用途

New Issue Skill 用于在当前对话上下文中创建或提交 GitHub issue、bug 报告或功能请求。它可以从对话历史、用户描述、代码片段、错误信息以及相关文件路径中提取材料,生成结构化的 issue 内容并提交到 GitHub 仓库。

主要能力

  • 根据对话上下文自动生成 issue 标题与描述,标题保持简洁(80 字符以内),必要时以 [Bug]、[Feature]、[Enhancement]、[Question] 等类型前缀开头。
  • 描述按适用情况分段组织,包含 Description、Context、Steps to Reproduce、Proposed Solution、Additional Information 等部分。
  • 支持显式指定目标仓库:完整 URL(https://github.com/owner/repo)或简写(owner/repo)。
  • 支持自动检测当前 git 仓库;若当前仓库是 fork,则自动以父仓库(上游)作为目标。
  • 在创建前以草稿形式展示,并通过提问工具让用户确认,可选“按原样提交”“修改标题”“修改描述”“取消”。
  • 用户可多轮修改标题或描述,直到确认或取消。
  • 创建后展示 issue 编号、标题、仓库和 URL。

使用方式

用户可通过“new issue”“create issue”“file an issue”“report this bug”“submit feature request”等短语触发该技能,并可选择指定目标仓库。

前置检查:

  • 检查 gh CLI 是否可用且已认证:gh auth status。若未认证,提示先运行 gh auth login。
  • 仅在自动检测模式下检查是否处于 git 仓库:git rev-parse --is-inside-work-tree,并获取仓库信息:gh repo view --json owner,name,url。
  • 若不在 git 仓库且未指定目标,提示用户指定目标仓库或进入 git 项目。

确定目标仓库:

  • 用户指定仓库时,解析 owner/repo 并校验仓库是否存在且可访问: gh repo view "$TARGET_REPO" --json owner,name,url
  • 自动检测时,获取仓库信息并判断是否为 fork: gh repo view --json owner,name,isFork,parent,url 若为 fork,则使用父仓库的 owner 与 name 作为 TARGET_REPO;否则使用当前仓库。

生成 issue 内容时,标题与描述内容必须为英文;若对话为其他语言,则翻译或归纳为英文。

创建 issue 命令示例:

gh issue create \
  --repo "$TARGET_REPO" \
  --title "$ISSUE_TITLE" \
  --body "$ISSUE_BODY"

使用 HEREDOC 保留正文格式:

gh issue create --repo "$TARGET_REPO" --title "$ISSUE_TITLE" --body "$(cat <<'EOF'
## Description

[Description content here]

## Context

[Context content here]

EOF
)"

创建后查询结果:

gh issue view --repo "$TARGET_REPO" <ISSUE_NUMBER> --json number,title,url,state

输出示例:

Issue Created Successfully

Issue: #[NUMBER] - [TITLE]
Repository: [TARGET_REPO]
URL: [ISSUE_URL]

适用场景

  • 在开发对话中记录 bug 并提交到相应仓库。
  • 提交功能请求或改进建议。
  • 将讨论中的错误信息、代码片段和环境细节整理成规范 issue。
  • 在开源项目中向 fork 的上游仓库提交问题。

限制

  • 需要 gh CLI 已安装并完成认证。
  • 在自动检测模式下需要处于 git 仓库中。
  • issue 标题与描述必须使用英文。
  • 创建前必须获得用户明确确认,不得跳过确认直接创建。
  • 不得在 issue 正文中包含密钥、密码等敏感信息。
  • 无写入权限时无法创建 issue,需考虑先 fork。
  • 遇到 API 错误、频率限制等情况会报告并给出相应提示。