Automatic GitHub Changelog Generator

If your code/project always uses Pull Requests to add/fix stuff in your code (e.g. no direct commits on master), then Changelog Generator will come in handy. It’s a CLI tool (written in PHP) that automatically fetches all closed PRs and Issues between the targetted and the previously tagged release.

Installation is possible using Composer:

$ composer require jwage/changelog-generator

Once installed, run it like so:

$ changelog-generator generate --user=jwage --repository=changelog-generator --milestone=0.0.7

The snippet above will check all closed PRs and Issues that landed in between the 0.0.7 release and the one before (e.g. 0.0.6) of the repo jwage/changelog-generator.

0.0.7
=====

- Total issues resolved: **1**
- Total pull requests resolved: **4**
- Total contributors: **3**

Improvement
-----------

 - [47: Upgrade Doctrine Coding Standards to 5.0](https://github.com/jwage/changelog-generator/pull/47) thanks to @jwage
 - [43: Generate alternative (Setext, without #) Markdown format for headers](https://github.com/jwage/changelog-generator/pull/43) thanks to @Majkl578
 - [38: Fix: Provide missing required php version in composer](https://github.com/jwage/changelog-generator/pull/38) thanks to @prisis
 - [32: Upgrade PHPStan to 0.10](https://github.com/jwage/changelog-generator/pull/32) thanks to @jwage

Adding the --prepend --file=CHANGELOG.md options, will automatically prepend its output to CHANGELOG.md.

💡 In case you don’t always want to type the arguments you could define it as a custom composer command/script into your own project, or use a config file which is also supported.

Generate a Markdown Changelog from a GitHub milestone. →

Published by Bramus!

Bramus is a frontend web developer from Belgium, working as a Chrome Developer Relations Engineer at Google. From the moment he discovered view-source at the age of 14 (way back in 1997), he fell in love with the web and has been tinkering with it ever since (more …)

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.