用于开发一场 FloatCTF 比赛。
创建一个空的 Private Repository,例如:
git@github.com:fb0sh/freshcup-2027.git
git clone -b event/base --single-branch --filter=blob:none \
git@github.com:FloatCTF/floatctf-content.git \
freshcup-2027
cd freshcup-2027目录名即 Event ID,建议使用:
freshcup-2027
summer-2027
xzmu-2027
./scripts/init-event.sh git@github.com:fb0sh/freshcup-2027.git
git push -u origin main初始化后:
origin → 当前比赛私有仓库
upstream → FloatCTF/floatctf-content
并创建:
challenges/
gameboxes/
events/<event-id>.toml
将 Challenge 和 GameBox 分别放入:
challenges/
gameboxes/
每个子目录必须包含:
meta.toml
内容发生变化后运行:
./scripts/sync-event.sh脚本会自动:
- 扫描
challenges/ - 扫描
gameboxes/ - 更新
events/<event-id>.toml - 生成
docs/<event-id>.md
然后正常提交:
git add .
git commit -m "..."
git push比赛结束并确认可以公开后:
./scripts/publish.sh脚本会发布到:
floatctf-content:event/freshcup-2027
并创建合并到:
floatctf-content:main
的 Pull Request。
比赛公开前,只向
origin推送,不要向upstream推送。