用途:从 Conventional Commits 提交历史生成一致、可审计的变更日志(changelog)与发布说明,覆盖发布打标签前、CI 自动生成发布说明、PR 检查提交格式、monorepo 按包范围过滤等场景。
主要能力:提交解析——把 Conventional Commit 消息解析为结构化数据(type、scope、description、body、footer),并通过 ! 与 BREAKING CHANGE: 识别破坏性变更;语义化版本检测——按提交类型映射 bump 级别(breaking→major,feat→minor,其他→patch),支持预发布版本;变更日志渲染——输出 Keep a Changelog、GitHub release notes、纯 markdown 和按类型分组的 JSON;质量约束——提供提交信息 linter,用于 CI 与 pre-commit 钩子,支持严格模式、scope 校验、破坏性变更文档要求。
使用方式:核心工具与命令如下(保持原样)。commit_parser.py 解析 git log:git log --pretty=format:'%H%n%s%n%b%n---COMMIT_END---' --no-merges | python scripts/commit_parser.py --json;breaking_change_detector.py 扫描破坏性变更:python scripts/breaking_change_detector.py -f gitlog.txt --severity high;changelog_formatter.py 格式化:python scripts/changelog_formatter.py -f parsed.json --version 1.4.0 --format keepachangelog。生成前需确认提交范围(起始 tag 或 commit)、输出格式、版本与(monorepo 下)包 scope;资料建议只问最影响输出的 2-3 项。
限制:不负责实际发布或部署流水线执行、Git tag 管理/分支策略/合并流程、提交信息本身的撰写改进,也不实现 Changesets 或 Lerna 式的多包协同版本管理。
参考文档:references/commit-format-and-rendering.md、references/generation-and-linting.md、references/quality-and-troubleshooting.md,分别覆盖提交语法与格式映射、解析→bump→渲染流程与 CI 配置、发布前检查与排错。