用途:自动化软件发布流程,覆盖版本递增、变更日志生成、git 标签、推送与 GitHub Release 创建,并在每个不可逆操作前强制要求用户确认。
主要能力:
- 预检:确认处于 git 仓库、工作区干净、位于可发布分支(main、master 或 release/*)、已配置远程、检测 gh CLI 是否可用。
- 版本检测:按优先级扫描 package.json、pyproject.toml、Cargo.toml、setup.cfg、VERSION,或回退到最新 git 标签。
- 递增类型:patch、minor、major,或用户指定精确版本;未指定时必须询问。
- 更新版本文件:Node.js 用 npm version <patch|minor|major> --no-git-tag-version,Python/Rust 用 sed 替换,通用文件直接写入;存在 package-lock.json 时运行 npm install --package-lock-only。
- 变更日志:从上次标签以来的 git log 生成条目,按 conventional commits 归类(feat→Added、fix→Fixed、docs→Documentation、refactor→Changed、BREAKING CHANGE→Breaking Changes),并前置到 CHANGELOG.md。
- 提交、打标签、推送:git commit -m "chore(release): v<NEW_VERSION>",git tag -a "v<NEW_VERSION>" -m "Release v<NEW_VERSION>",确认后 git push origin <branch> 与 git push origin "v<NEW_VERSION>"。
- GitHub Release:用 gh release create 创建,预发布版本(含 -alpha、-beta、-rc)加 --prerelease。
- 发布后校验:git ls-remote --tags 与 gh release view 验证。
使用方式:以自然语言触发,如“release patch”“bump minor”“major release”“release 2.0.0”“prerelease”。未指定类型时必须确认。
限制:推送与创建公开 Release 前必须用户确认;工作区不干净、分支不符时停止;无 gh CLI 时跳过 GitHub Release;标签已存在、推送被拒、gh 认证失败等需按错误恢复流程处理。具体收费、平台支持范围等资料未提供。