~/tools/git/changelog-generator

Git

Conventional 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 может понадобиться дополнительная ручная разметка результата.