Я провел небольшое исследование и нашел несколько библиотек, которые можно использовать для достижения моей цели. Для этого я выбрал generate-changelog, потому что его довольно легко настроить и использовать.

Общая идея заключается в том, что вам нужно будет использовать определенные ключевые слова в ваших git-коммитах, которые затем будут проанализированы и добавлены к CHANGELOG.md файл и зафиксирован перед обновлением версии (скрипт автоматизирует это).

  1. Установить генератор ChangeLog

Установите эту утилиту как зависимость разработчика, выполнив эту команду:

$ yarn add -D generate-changelog
  1. Настройте скрипты

Добавьте следующие рекомендуемые скрипты в объект scripts в вашем файле package.json:

{    
   "scripts": {  
      "release:major": "changelog -M && git add CHANGELOG.md && git commit -m 'updated CHANGELOG.md' && yarn version --major && git push origin && git push origin --tags",      
      
      "release:minor": "changelog -m && git add CHANGELOG.md && git commit -m 'updated CHANGELOG.md' && yarn version --minor && git push origin && git push origin --tags",      
      
      "release:patch": "changelog -p && git add CHANGELOG.md && git commit -m 'updated CHANGELOG.md' && yarn version --patch && git push origin && git push origin --tags",   
      
      }   
}
  1. Сделайте несколько коммитов с ключевыми словами

Используйте этот шаблон:

type(category): description [flags]

Например, после того, как вы установили зависимость generate-changelog, вы могли бы сделать:

$ git add .  
$ git commit -m "feat(deps): added `generate-changelog` dev dependency"

Примечание: Поддерживаемые тип, категория и флаги перечислены в разделе “Создание журнала изменений”.

  1. Запустите скрипт

Как только вы закончите всю работу, которую необходимо выполнить для конкретной версии, запустите один из скриптов, которые мы добавили ранее, чтобы сгенерировать CHANGELOG.md файл, обновите версию и перейдите к источнику.

$ yarn release:major

Вы сделали это! Проверьте сейчас содержимое вашего CHANGELOG.md файл, и вы увидите, что ваша фиксация была добавлена. В следующий раз, когда вы запустите один из сценариев выпуска, коммиты будут автоматически добавлены в начало файла. Удивительно, не правда ли?