Skip to content

diffblue/github-changelog-generator

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Changelog Generator

The changelog generator that will create automatic changelog for your projects using Github issue trackers.

Description

This tool queries the GitHub Issues API using CORS to fetch all issues that were closed since a specific date. While doing this, it keeps track of the number of requests remaining in the current rate limit window. You can provide an OAuth2 Token to increase the number of allowed requests per hour. A token can be created for instance through the web UI via the Application settings page.

What does a Changelog line look like?

For each closed issue it generates a line like this:

#341 Update from 2.3 to 2.4 breaks db password [by @tsteur]

For each issue the changelog generator lists:

  • the issue number with a link to the Github issue page,
  • the issue title,
  • all people who have contributed code to this issue and/or were assigned to the issue.

Configuration

OAuth2 Token

You'll need to set up an OAuth2 token. This can be found in your Github account under Settings -> Developer Settings -> Personal Access Token. Generate a new token and tick the "Full control of private repositories" box, so that the change log generator can access the required information for test-gen and models-library. Make a note of the token so it can be put in the config.js file later.

config.js file

You can change the configuration in the src/config.js file. The OAuth2 Token and the name of the repository can be changed directly in the UI as well.

sample config.js file

This generator was created for the Matomo analytics project to generate our Release changelogs.

Here is the configuration we're using to generate our changelog across our many projects and repositories:

var config = {};
 
config.repository = 'matomo-org/matomo,matomo-org/matomo-log-analytics,matomo-org/matomo-php-tracker,matomo-org/referrer-spam-blacklist,matomo-org/tracker-proxy,matomo-org/device-detector,matomo-org/searchengine-and-social-list,matomo-org/component-network,matomo-org/component-ini,matomo-org/component-decompress,matomo-org/component-cache,matomo-org/matomo-package,matomo-org/matomo-icons';

config.oauthToken = 'secret';

config.labelsToIgnore = ['invalid', 'wontfix', 'duplicate', 'worksforme', 'answered', 'not-in-changelog'];

config.milestonesToIgnore = ['3.0.0'];

config.sortByLabels = ['RFC', 'c: i18n', 'c: Website matomo.org', 'Bug', 'c: Platform', 'Task', 'c: Accessibility', 'c: Usability', 'c: Design / UI', 'Regression', 'c: Performance', 'Enhancement',  'c: Security', 'c: New plugin', 'Major', 'Critical'];

Usage

Just open the file src/index.html in your browser, no server needed!

License

GPL v3 (or later) see LICENSE

Screenshot

Screenshot

About

Queries the GitHub issues API to format a changelog

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 87.0%
  • HTML 13.0%