SuperAPI AI 工具集

jackin-release-notes

通用与其它

查看项目

更新于 10-15 22:39

技能介绍

用途:在发布前填充变更日志,或预览下一次发布将包含的内容。不用于执行发布本身,发布由 jackin-release 负责,它会调用本技能作为生成说明的步骤。

主要能力:按 Conventional Commits 前缀与标签把每个合并 PR 归入 Keep a Changelog 分类:feat:/feature 归 Added,fix:/bug 归 Fixed,security: 归 Security,refactor:/chore:/docs:/ci:/build: 归 Changed,deprecate: 归 Deprecated,remove: 归 Removed,无匹配默认归 Changed。标题会去掉前缀并首字母大写。

使用方式:先确定边界,运行 LAST_TAG=$(git describe --tags --abbrev=0),若无标签则从初始提交 git rev-list --max-parents=0 HEAD 开始,并用 TAG_DATE=$(git log -1 --format=%aI "$LAST_TAG") 取日期。再用 gh pr list --state merged --base main --search "merged:>$TAG_DATE" --json number,title,labels,mergedAt 收集合并 PR。对未归组提交运行 git log <last-tag>..HEAD --oneline --no-merges,并用 gh pr list --state merged --search "<sha>" 匹配 PR,无 PR 的提交列入 Ungrouped commits。最后写入 [Unreleased],每个非空分类一节,条目链接对应 PR,替换原有 [Unreleased] 块并保留 <!-- next-header --> 标记。

适用场景:发布前生成变更日志、预览下个版本内容。

限制与注意:可重复运行,每次重新读取 CHANGELOG.md、实时获取 GitHub 数据,覆盖操作员已编辑的条目之前会先询问;不要遗漏无前缀的 PR,不要列出空分类,不要忘记 PR 链接,未经批准不要进入发布流程。