changelog-guru
v5.0.2
Published
Git changelog generator
Downloads
2,005
Maintainers
Readme
Automated changelog generator:package::zap::clipboard:
changelog-guru generate a CHANGELOG.md from git metadata and checks if your commit messages meet the conventional commit format.
Install
npm install changelog-guru --save-dev
Goals
- allow generating CHANGELOG.md by script
- allow ignoring commits
- provide better information when browsing the history
Format of the commit message
The commit message pattern mostly looks like this:
<type>(<scope>): <subject>
<markers>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>
Real world examples can look like this:
fix(Section): fix sections sorting
!break
Sort direction added:
... code example
build(deps-dev): bump eslint-plugin-jest to 22.x
refactor(State): tidy up work with message queues
!group(Prerelease refactoring)
...
refactor(ConfigLoader): correct configuration loading method
!group(Prerelease refactoring)
Getting started
Changelog-guru can be used either through a command line interface with an optional configuration file, or else through its JavaScript API. Run changelog --help
to see the available options and parameters.
Configuration
Only the minimum necessary settings are described here, for more detailed configuration, see the default configuration file.
Changelog-guru uses cosmiconfig and you can configure the module in any way you like described in the documentation.
Provider
The type of service provider to receive information about the project. To set the type of service you want to use, you must:
- Set
provider: github
orprovider: gitlab
in your configuration file, it's all. - Make sure the provider token is available as an environment variable.
Example:
export GITHUB_TOKEN="f941e0..."
export GITLAB_TOKEN="f941e0..."
Changelog-guru uses dotenv and you can loads environment variables from a
.env
Generate changelog
Generate a changelog file by git metadata.
changelog generate [options]
The command can be executed without options. If necessary, or if you want to override the options specified in the configuration file, you can specify the following options:
--bump
- Bumps package version in package.json if specified--branch <value>
- Sets the branch by which the change log will be generated--provider <value>
- Specifies the type of service provider to receive project information--output <value>
- File path to write change log to it
Lint commit message
There is a changelog lint
for checking the spelling of the commit message. Checks compliance with the format and spelling in the subject of the commit.
changelog lint --message "..."
To lint commits before they are created you can use Husky's (v5.x) commit-msg
hook:
changelog lint --message $1
For a more meticulous check, the following options are available:
--message <text>
- Required. Commit message for linting--maxLength number
- Max commit header length
API
Read the API documentation for more information.