SuperAPI AI 工具集

project-add-items

办公与效率

查看项目

更新于 10-15 14:28

技能介绍

用途

project-add-items 是一个用于从各类来源批量创建 GitHub Project 项目条目的技能。它可以从需求定义书、任务列表、路线图等源文件中提取条目,并统一创建到指定的 GitHub Project 中。

主要能力

  • 支持多种来源:文件路径(Markdown、YAML 等)、URL(GitHub Issue 列表、Wiki 页面等)、用户直接输入的内联文本。
  • 解析并抽取以下信息:标题、正文/说明、优先级(High / Medium / Low)、大小(XS / S / M / L / XL)、分类(来自章节标题等)。
  • 支持 Markdown 检查清单格式,例如:
## 认证功能
- [ ] 社交登录实现 (Priority: High, Size: L)
- [ ] 密码重置 (Priority: Medium, Size: M)

## 仪表盘
- [ ] 使用统计图表 (Priority: Low, Size: S)
  • 支持 YAML 任务列表格式,例如:
tasks:
  - title: "社交登录实现"
    priority: High
    size: L
    description: "使用 OAuth2 的 Google/GitHub 登录"

使用方式

前提条件:

  • 目标 GitHub Project 已存在。
  • 已安装 gh CLI 并完成认证(带 project 权限)。

执行流程:

  1. 确定来源:从用户处获取条目来源(文件路径、URL 或内联文本)。
  2. 解析来源并抽取条目:按来源格式解析,提取标题、正文、优先级、大小、分类等信息。
  3. 获取字段元数据:
# 获取项目 ID
gh project view <number> --owner <owner> --format json -q '.id'

# 获取字段 ID 与选项 ID
gh project field-list <number> --owner <owner> --format json

使用 jq 将字段名解析为字段 ID、选项名解析为选项 ID。

  1. 批量创建条目:对每个抽取出的条目执行:
gh project item-create <number> \
  --owner <owner> \
  --title "<标题>" \
  --body "<正文>" \
  --format json

从输出中获取条目 ID。

  1. 设置字段值:对每个条目设置字段值:
# 设置 Priority
gh project item-edit \
  --id <item-id> \
  --field-id <priority-field-id> \
  --project-id <project-id> \
  --single-select-option-id <option-id>

# 设置 Size
gh project item-edit \
  --id <item-id> \
  --field-id <size-field-id> \
  --project-id <project-id> \
  --single-select-option-id <option-id>

# 设置 Status(默认:Todo)
gh project item-edit \
  --id <item-id> \
  --field-id <status-field-id> \
  --project-id <project-id> \
  --single-select-option-id <todo-option-id>
  1. 列出创建结果:以表格形式显示已创建条目(序号、标题、Priority、Size、Status)。

验证

第 6 步完成后,可用以下命令确认已创建的条目:

gh project item-list <number> --owner <owner> --format json --limit 999

若创建的标题出现在列表中,且 Priority / Size / Status 与预期一致,则视为完成。

适用场景

  • 将需求定义书、任务清单、路线图等文档批量导入 GitHub Projects。
  • 需要为大量条目统一设置优先级、大小、状态等字段时。

限制与注意事项

  • 创建大量条目(20 条以上)时,需先向用户确认后再批量执行。
  • 来源格式不明确时,需向用户确认。
  • 字段值与项目选项不匹配时,跳过并给出警告。
  • 需注意 GitHub API 速率限制,必要时调整批量大小。
  • 需要网络(主要通过 API)。相关命令需以命令为单位禁用 sandbox 执行;在无法解除网络阻断的环境中无法运行。