SuperAPI AI 工具集

project-create-issues

部署与运维

查看项目

更新于 10-15 12:25

技能介绍

用途

project-create-issues 是一个面向 GitHub Projects 的技能,用于把项目中的草稿条目(DraftIssue)批量或按选择转换为真实的 GitHub Issue,并在转换过程中保留原有的字段值,同时可建立父子(sub-issue)关系。

前提条件

  • 目标 GitHub Project 中已存在草稿条目。
  • 已安装 gh CLI 并完成认证,且具备 project 权限范围。

主要流程

  1. 获取草稿条目:使用 gh project item-list <number> --owner <owner> --format json --limit 999,从 JSON 输出中筛选类型为 DraftIssue 的条目。
  2. 确认转换对象:向用户展示草稿条目列表,确认是全部转换还是仅选择特定条目。
  3. 决定父 Issue:确认是使用已有父 Issue 编号、新建父 Issue,还是不设父 Issue(仅创建独立 Issue)。新建父 Issue 时使用 gh issue create 并填写标题与正文。
  4. 保存草稿字段值:转换前先获取并记录每个草稿条目的 Status、Priority、Size 等字段值,因为草稿转 Issue 时字段值会丢失。
  5. 创建 Issue 并加入项目:对每个草稿条目依次执行——用 gh issue create 创建 Issue;用 gh project item-add 将 Issue 加入项目;用 gh project item-edit 把字段值复制到新条目;用 gh project item-delete 删除原草稿条目。Issue 标题建议采用 Conventional Commits 形式(如 feat:、fix:、chore: 等)。
  6. 关联为 sub-issue:若指定了父 Issue,先获取子 Issue 的 database id(数值 id,非节点 ID),再通过 gh api --method POST "repos/{owner}/{repo}/issues/{parent_number}/sub_issues" -F "sub_issue_id=${child_id}" 建立关联。注意 sub_issue_id 需传 database id,且因是数值需使用 -F。
  7. 报告结果:列出创建的 Issue 清单,包含编号、标题、Priority、Size 及是否为某父 Issue 的子项。

验证方式

流程完成后,可用 gh issue list --state open --limit 20 和 gh project item-list <number> --owner <owner> --format json --limit 999 确认草稿已消失、真实 Issue 已加入项目;父 Issue 的 sub-issues 可通过 gh api repos/{owner}/{repo}/issues/{parent_number}/sub_issues 查看。

注意事项

  • 草稿转 Issue 时字段值会丢失,需在转换前保存。
  • 如需标签、负责人、里程碑,应向用户确认。
  • 大量转换时需注意 GitHub API 速率限制。
  • 该技能需要网络(主要经由 API)。在 sandbox 环境中,相关命令需按命令单位禁用 sandbox 执行;无法解除网络限制的环境无法运行。