gitlink-cli/skills/gitlink-project-bootstrap/examples/bootstrap-workflow.md

5.2 KiB
Raw Blame History

项目一键初始化工作流 — 端到端示例

场景:开发者希望快速启动一个新项目:输入一句话描述,自动创建仓库、生成 README/LICENSE/CI 骨架、建立首个里程碑与初始 Issue5 分钟即可进入协作。

前置条件

  • gitlink-cli 已安装并登录(gitlink-cli auth status
  • 目标仓库所有者已确认(示例使用 z2_cc
  • jq 已安装(用于 JSON 解析)
  • node 已安装(用于 skeleton-gen.jsmd-to-html.js

输入

export PROJECT_DESC="一个用 Go 编写的 GitLink 命令行工具MIT 许可证,公开仓库。"

工作流步骤

Step 1解析需求 + 创建仓库

# 1.1 AI 解析 PROJECT_DESC落盘 _output/project-spec.json
#     name        → gitlink-cli从描述推断但本次演示仓库名复用参数 gitlink-cli-demo
#     description → 一个用 Go 编写的 GitLink 命令行工具
#     language    → go
#     license     → MIT
#     private     → false

_output/project-spec.json 输出示例:

{
  "name": "gitlink-cli-demo",
  "description": "一个用 Go 编写的 GitLink 命令行工具",
  "language": "go",
  "license": "MIT",
  "private": false,
  "owner": "z2_cc"
}
# 1.2 创建仓库dry-run 模式)
DRY_RUN=true
gitlink-cli repo +create --name gitlink-cli-demo \
  --description "一个用 Go 编写的 GitLink 命令行工具" --private false

输出示例:

{ "ok": true, "data": { "name": "gitlink-cli-demo", "id": 123456, "private": false } }
# 1.3 验证仓库已创建
gitlink-cli repo +info --owner z2_cc --repo gitlink-cli-demo --format json

Expected: project-spec.json 生成dry-run 模式下 [DRY-RUN] 将执行 repo +create ...,不实际建仓。


Step 2生成项目骨架文件

# 2.1 运行骨架生成引擎
node scripts/skeleton-gen.js _output

AI 生成逻辑说明:

读取 _output/project-spec.json
  → language=go   → 生成 Go 风格 .gitignorebin/、*.exe、vendor/
  → license=MIT   → 写完整 MIT 正文,版权行 "Copyright (c) 2026 [project author]"
  → name + description → 拼装 README标题/简介/安装/用法/贡献/许可证)
  → 固定模板       → .devops/构建流水线.yml最小可用 Go 构建)
落盘到 _output/skeleton/{README.md, LICENSE, .gitignore, .devops/构建流水线.yml}

_output/skeleton/ 产物清单:

README.md
LICENSE
.gitignore
.devops/构建流水线.yml
# 2.2 推送到新仓库dry-run 模式)
DRY_RUN=true
# 优先 file +batch单次 commit不确定字段时退回逐个 file +create
gitlink-cli file +batch \
  --files '[{"path":"README.md","content":"# ...","action":"create"}, ...]' \
  --message "chore: 初始化项目骨架" --branch master

Expected: skeleton/ 下四个文件齐全dry-run 下 [DRY-RUN] 将执行 file +batch ...


Step 3创建里程碑 / 标签 / 初始 Issue

# 3.1 创建里程碑 v0.1.0due-date = 今天 +30 天)
gitlink-cli milestone +create -t "v0.1.0" \
  -d "首个里程碑:完成核心功能与文档" --due-date 2026-08-01

输出示例:

{ "ok": true, "data": { "id": 1001, "name": "v0.1.0" } }
# 3.2 创建起始标签
gitlink-cli label +create --name "good-first-issue" --color 7057ff
gitlink-cli label +create --name "enhancement"     --color a2eeef
gitlink-cli label +create --name "bug"             --color d73a4a
# 3.3 创建 3 个初始 Issue关联里程碑与标签dry-run
DRY_RUN=true
gitlink-cli issue +create -t "完善 README 文档" \
  -b "补充安装、用法、贡献指南" --milestone 1001 --label <enhancement_id>
gitlink-cli issue +create -t "配置 CI 流水线" \
  -b "确保 push/PR 触发构建与测试" --milestone 1001 --label <enhancement_id>
gitlink-cli issue +create -t "撰写贡献指南 CONTRIBUTING.md" \
  -b "说明提交流程、代码规范" --milestone 1001 --label <good_first_issue_id>

Expected: 1 个里程碑、3 个标签、3 个初始 Issue 建议生成dry-run 下全部 [DRY-RUN]


完整命令速览

# Phase 1: 解析 + 建仓
PROJECT_DESC="一个用 Go 编写的 GitLink 命令行工具" \
  bash scripts/01-parse-and-create-repo.sh z2_cc gitlink-cli-demo

# Phase 2: 骨架
bash scripts/02-generate-skeleton.sh z2_cc gitlink-cli-demo

# Phase 3: Issue + 里程碑
bash scripts/03-create-issues-milestones.sh z2_cc gitlink-cli-demo

# 一键全流程
PROJECT_DESC="一个用 Go 编写的 GitLink 命令行工具" \
  bash scripts/project-bootstrap-full.sh z2_cc gitlink-cli-demo

最终报告

_output/init-report.md综合评分X/10 形式的"初始化完成度"并列表展示已生成的产物README/LICENSE/.gitignore/CI/里程碑/标签/Issue。经 md-to-html.js 转换后生成可视化 HTML。

注意事项

  • 所有写操作默认 dry-run确认后通过 DRY_RUN=false 实际执行
  • AI 解析出的项目名/许可证/可见性建议人工复核
  • 生成 LICENSE 中的 [year] [project author] 占位需替换为真实版权人
  • 离线/未认证时脚本优雅降级,仍能产出 init-report.md 供审阅