
Полностью автоматизированная генерация ChangeLog - этот драгоценный камень генерирует файл ChangeLog на основе тегов , проблем и объединенных запросов на вывод (и разбивает их в отдельные списки в соответствии с метками) от GitHub.
Поскольку вам не нужно заполнять свой CHANGELOG.md вручную сейчас: просто запустите сценарий, расслабьтесь и возьмите чашку ☕ перед следующим выпуском! ?
Чтобы пользователям и участникам было проще увидеть то, какие заметные изменения были внесены между каждым выпуском (или версией) проекта.
Потому что программные инструменты предназначены для людей . «Учитываемые игроки облегчают пользователям и участникам точно видеть, какие заметные изменения были внесены между каждым выпуском (или версией) проекта».
➡ https://keepachangelog.com
Генератор Github ChangeLog - это программа Ruby, распространяемая как Rubygem. На домашней странице Ruby Language есть страница установки.
Установите драгоценный камень как:
$ gem install github_changelog_generator
В зависимости от вашей системы, вам может потребоваться запустить оболочку в качестве администратора (Windows) или использовать sudo gem install github_changelog_generator (linux).
github_changelog_generator -u github_project_namespace -p github_project
(Где пространство имен проекта, вероятно, является вашим именем пользователя, если это проект, который вы владеете, но это также может быть пространством имен проекта)
Использование Docker - это альтернатива установке Ruby и драгоценного камня.
Пример вызова:
$ docker run -it --rm -v "$(pwd)":/usr/local/src/your-app githubchangeloggenerator/github-changelog-generator
Для GitHub Enterprise Repos укажите опции - --github-site и --github-api :
$ github_changelog_generator --github-site="https://github.yoursite.com"
--github-api="https://github.yoursite.com/api/v3/"
Это генерирует CHANGELOG.md , с красивой форматированием маркировки.
Посмотрите на Changelog.md для этого проекта
ActionSheetPicker-3.0/Changelog.md был сгенерирован по команде:
$ github_changelog_generator -u github-changelog-generator -p ActionSheetPicker-3.0
В общем, это выглядит так:
1.2.5 (2015-01-15)
Полный вариант
Внедренные улучшения:
- Используйте Milestone, чтобы указать, в какой версии была исправлена ошибка #22
Исправлены ошибки:
- Ошибка при попытке генерировать журнал для репо без тегов #32
Объединенные запросы на тягу:
Класс PrettyPrint включен с использованием строчных "PP ' #43 (Schwing)
Поддержка Enterprise Github через параметры командной строки № 42 (Гленловетт)
Печать справки для всех вариантов командной строки, чтобы узнать больше подробности:
$ github_changelog_generator --help
Для получения более подробной информации о Params прочитайте страницу Wiki: примеры Advanced ChangerElog Generation
В корне проекта вы можете поместить файл Params с именем .github_changelog_generator для переопределения параметров по умолчанию:
Пример:
unreleased=false
future-release=5.0.0
since-tag=1.0.0
GitHub допускает только 50 несавтоцированных запросов в час .
Поэтому рекомендуется запустить этот скрипт с аутентификацией с помощью токена .
Вот как:
--token <your-40-digit-token> ; ИЛИCHANGELOG_GITHUB_TOKEN на свой 40 -значный токен Вы можете установить переменную среды, выполнив следующую команду в приглашении или добавив ее в свой профиль оболочки (например, .env , ~/.bash_profile , ~/.zshrc и т. Д.):
export CHANGELOG_GITHUB_TOKEN="«your-40-digit-github-token»"
Итак, если вы получите как это сообщение:
API rate limit exceeded for github_username.
See: https://developer.github.com/v3/#rate-limitingПришло время создать этот токен! (Или подождите час, пока GitHub сбросит ваш лимит неаутентированного запроса.)
Зная, насколько вы преданы своему проекту, вы, вероятно, не ждали github-changelog-generator чтобы сохранить изменение. Но вы, вероятно, не хотите, чтобы ваш проект открыли проблемы и PRS для всех прошлых функций, перечисленных в вашем историческом измене.
Вот где --base <your-manual-changelog.md> пригодится! Эта опция позволяет добавлять ваше старое ручное изменение в конце сгенерированных записей.
Если в вашем проекте есть файл HISTORY.md , он будет автоматически выбирать в качестве статической исторической изменчивости и добавленной.
Вы любите rake ? Мы тоже делаем! Итак, мы сделали это еще проще для вас: мы предоставили библиотеку задач rake для вашего поколения изменений.
Настройте задачу в вашем Rakefile :
require 'github_changelog_generator/task'
GitHubChangelogGenerator :: RakeTask . new :changelog do | config |
config . user = 'username'
config . project = 'project-name'
config . since_tag = '0.1.14'
config . future_release = '0.2.0'
end Все параметры командной строки могут быть переданы в задачу rake как параметры config . А так как вы называете задачу rake самостоятельно, вы можете создать столько, сколько захотите.
Вы можете искать имена параметров из исходного кода анализатора (#Setup_parser). Например, чтобы перевести метку ошибок на португальский язык, вместо того, чтобы установить config.bugs_label , вам нужно установить config.bug_prefix и так далее.
Создать канонический, аккуратный файл изменений, с разделами по умолчанию, которые следуют основным руководящим принципам Changelog?
При желании генерировать не выпущенные изменения (закрытые проблемы, которые еще не опубликовали)?
Поддержка Github Enterprise через параметры командной строки! ?
Гибкий формат настройка :
milestone того же имени проблемы, что и тег версии?question , duplicate , invalid или wontfix ) ✂Различать проблемы по ярлыкам . ?
bug )?enhancement )?Вручную включать или исключать проблемы по этикеткам?
Настройте много! Изменить изменение изменений в соответствии с вашими предпочтениями? ( См. github_changelog_generator --help для деталей)
Для каждой версии вы можете добавить резюме релиза с текстом, изображениями, анимацией GIF и т. Д., А также показать новые функции и заметки для пользователя. Это делается с использованием метаданных GitHub.
Пример : добавление резюме выпуска для v1.0.0:

Hello, World! :tada:
release-summary метки выпуска и добавьте его в Milestone Github v1.0.0github-changelog-generatorv1.0.0 (2014-11-07)
Полный вариант
Привет, мир! ?
Внедренные улучшения:
- Добавьте некоторые функции
Вот список альтернатив, которые я нашел. Но никто не удовлетворял мои требования.
Если вы знаете другие проекты, не стесняйтесь редактировать эту страницу вики!
Вот список проектов Wikipage.
Если вы использовали этот проект в живом приложении, пожалуйста, дайте мне знать! Ничто не делает меня счастливее, чем видеть, как кто -то другой берет мою работу и сходит с ума.
Если вы используете github_changelog_generator для генерации Changelog вашего проекта или знаете другие проекты, использующие его, добавьте его в этот список.
github_changelog_generator можно использовать в сочетании с Github CLI для создания заметок. Используйте параметры --since-tag и --output github_changelog_generator , чтобы создать изменение изменений для текущего выпуска и сохранить результаты в файле. В приведенном ниже примере версия 2.0.0 является текущим выпуском, а версия 1.0.0 - предыдущий релиз.
mkdir -p build
github_changelog_generator
--since-tag 1.0.0
--output build/changelog.md
Затем используйте функцию «Создание выпуска» GitHub CLI, чтобы создать новый релиз GitHub
gh release create 2.0.0
--notes-file build/changelog.md
--title 2.0.0
Нет ничего невозможного!
Откройте проблему, и давайте сделаем генератор лучше вместе!
Отчеты об ошибках, запросы функций, патчи и доброжелательность всегда приветствуются. ❗
Github Relayes - это очень хорошая вещь. И это очень хорошая практика, чтобы сохранить его. (Еще не многие люди его используют!) ㊗ ㊗
Кстати: я хотел бы поддержать выпуск GitHub в следующих выпусках;)
Я не пытаюсь сравнить качество рукописных и автоматических журналов. Что сказано ....
Автопогенерированный изменение изменяемости действительно помогает, даже если вы вручную заполняете ноты релиза!
Это возможно, используя либо add-sections , либо вход configure-sections в .github_changelog_generator . Например, чтобы добавить одну новую запись, называемую «техническое обслуживание», которая поймает PRS, помеченные вашей меткой maintenance , вы можете добавить в .github_changelog_generator the Line:
add-sections= {"maintenance":{"prefix":"**Project maintenance**","labels":["maintenance"]}}
Аналогичный подход может использоваться с помощью configure-sections , чтобы установить все свойства раздела (включая добавление новых!).
Когда ваша рубина старая, и вы не хотите обновлять, и вы хотите контролировать, какие библиотеки вы используете, вы можете использовать бундлер.
В Gemfile, возможно, в не развернутой :development Group, добавьте этот драгоценный камень:
group :development do
gem 'github_changelog_generator' , require : false
endЗатем вы можете сохранить зависимости, такие как Rack, которая в настоящее время совместима только с Ruby> = 2.2.2. Итак, используйте более старую версию для вашего приложения, добавив такую линию в Gemfile:
gem 'rack', '~> 1.6'
Таким образом, вы можете продолжать использовать github_changelog_generator, даже если вы не можете установить последнюю версию Ruby.
Windows: v1.14.0 ввел ошибку, в которой он пытается создать /tmp/github_changelog-logger.log ... который не является действительным путем в Windows и, таким образом, сбой
Обходной путь: Создайте C:tmp .
Хотели бы вы внести свой вклад в этот проект? Anmenting.md имеет все детали о том, как это сделать.
Присоединяйтесь к чату в Gitter: Github-Changelog Genator
Генератор Github ChangeLog выпускается по лицензии MIT.