用途
project-init 用于快速初始化一个 GitHub Project v2:新建项目、设置标准字段、链接到仓库,并引导配置内置工作流,使项目看板具备基本的状态流转与自动化能力。
前提条件
- 已安装并认证 gh CLI。
- 账号已授予 project 权限(可用 gh auth status 确认)。
主要流程
- 确认项目信息:向用户确认项目标题、所有者(用户或 Organization)、可见性(PUBLIC / PRIVATE)以及可选的描述。若未指定所有者,可通过 gh repo view --json owner -q '.owner.login' 自动检测。
- 创建项目:使用 gh project create --owner <owner> --title "<标题>" --format json,并从输出中获取项目编号。
- 链接仓库:使用 gh project link <number> --owner <owner>。
- 创建标准字段:依次创建 Status(Todo, In Progress, In Review, Done)、Priority(High, Medium, Low)、Size(XS, S, M, L, XL)三个单选字段。若 Status 已由 GitHub 自动创建,则跳过并沿用现有字段。
- 设置项目描述与可见性:使用 gh project edit <number> --owner <owner> --description "<描述>" --visibility <PUBLIC|PRIVATE>。
- 配置内置工作流:内置工作流无法通过 CLI/API 设置,需在 Web UI 完成。设置地址为 https://github.com/orgs/<owner>/projects/<number>/workflows(个人项目为 https://github.com/users/<owner>/projects/<number>/workflows)。
推荐的内置工作流
- Item closed:Issue/PR 关闭后 Status → Done(默认启用,建议保持)。
- Pull request merged:PR 合并后 Status → Done(默认启用,建议保持)。
- Item reopened:Issue 重新打开后 Status → Todo(默认禁用,建议启用)。
- Item added to project:添加条目时 Status → Todo(默认禁用,建议启用)。
- Auto-add to project:按过滤条件自动添加 Issue/PR(默认禁用,建议启用)。
- Auto-archive items:Done 后 N 天自动归档(默认禁用,可选)。
- Auto-close issue:看板中设为 Done 时自动关闭 Issue(默认禁用,强烈建议启用)。若不启用 Auto-close,看板中把 Status 设为 Done 不会自动关闭 Issue,双向同步需要它。
Auto-add 过滤示例:is:issue,pr is:open repo:<owner>/<repo>;按标签过滤:is:issue,pr is:open label:sprint-1 repo:<owner>/<repo>。
后续与验证
若需要内置工作流无法覆盖的 PR 生命周期联动(如 opened→In Progress、review_requested→In Review),可参考 project-sync-issues 技能生成 GitHub Actions 工作流。完成后可用 gh project view <number> --owner <owner> --format json 与 gh project field-list <number> --owner <owner> --format json 验证项目 URL 与字段列表。
注意事项与限制
- Status 的选项值可按用户需求自定义。
- 字段创建若因已存在等原因报错,可跳过并继续。
- Organization 项目需要相应权限。
- 内置工作流必须通过 Web UI 设置,CLI/API 不可用。
- 该技能依赖网络进行 GitHub 操作,相关命令需在禁用 sandbox 的情况下逐条执行;无法解除网络限制的环境不能运行。