~/tools/git/changelog-generator
GitConventional Changelog Generator
Сгенерировать changelog из списка commit-сообщений.
Как это работает
Релиз готов, а changelog писать руками по памяти, вспоминая, что вообще происходило за последний месяц разработки? Git changelog generator online берет список commit сообщений в формате Conventional Commits и автоматически группирует их по категориям в готовый читаемый список изменений.
Инструмент распознает стандартные префиксы коммитов вроде feat, fix, perf, refactor, docs и chore, группирует записи под понятными русскими заголовками разделов, и выводит результат в формате Markdown, готовом для вставки прямо в файл CHANGELOG.md или в описание релиза на GitHub.
Полезно применять перед тегированием новой версии проекта, при подготовке release notes для пользователей, не разбирающихся в внутренней кухне git коммитов, или просто для быстрого обзора того, что реально изменилось между двумя версиями продукта за отчетный период.
Частые вопросы
Что произойдет с коммитами, которые не следуют формату Conventional Commits?
Такие коммиты попадут в отдельную категорию прочих изменений в конце списка, генератор не станет их пропускать полностью, просто не сможет определить их точную категорию по префиксу типа.
В каком порядке идут категории в итоговом changelog?
Сначала новые возможности, затем исправления багов, производительность, рефакторинг, документация и прочие изменения в конце, такой порядок обычно наиболее интересен читателю релиза, от важного к менее важному.
Можно ли автоматически получить список коммитов из git для вставки в генератор?
Да, команда вроде git log с форматом только заголовка коммита между двумя тегами версий дает подходящий список, который можно скопировать и вставить прямо в поле ввода этого инструмента.
Учитываются ли breaking changes с восклицательным знаком отдельно?
Текущая версия группирует по основному типу коммита, а не выносит breaking changes в отдельную категорию, для полноценного semantic release с явным выделением breaking changes может понадобиться дополнительная ручная разметка результата.