用途:把原始 git 历史与 PR 描述转换为面向读者的变更日志和发布说明,解析约定式提交、按影响分类、过滤内部改动,并生成带 PR 链接的结构化发布说明,遵循 Keep a Changelog 约定。
主要能力:支持识别破坏性变更(feat!:、BREAKING CHANGE:)、功能(feat:)、修复(fix:)、性能(perf:)、文档(docs:)与内部改动(chore:、ci:、refactor:、test:、build:);默认排除 CI/CD、测试、依赖升级、无行为变化的重构等内部改动;破坏性变更始终置顶并附迁移指引;每条条目链接来源 PR 或 issue。
使用方式:需 git 访问仓库历史,可选 gh(GitHub CLI)提取 PR 描述,并需 semver 标签界定发布边界。流程为:用 git describe --tags --abbrev=0 找上一发布标签,用 git log <last-tag>..HEAD --oneline --no-merges 提取提交,用 gh pr list --state merged --base main --search "merged:>YYYY-MM-DD" 提取 PR,再分类、过滤、撰写条目并输出。支持 release(标签到 HEAD)、sprint(日期或提交范围)、pr(单个 PR)三种范围模式。
适用场景:准备版本发布、迭代评审、状态更新或 PR 描述模板。
限制:不适用于自动发布未经人工审核的说明、无有意义提交历史的仓库、营销文案,以及尚未合并的改动。无标签时需指定起始提交或日期;非约定式提交会降低分类准确度;PR 描述为空时回退到提交信息并标记待人工复核。