cz-conventional-changelog-custom-format
v1.0.5
Published
Prompts for conventional changelog standard with an extra step to insert Jira ID and other tweaks.
Readme
cz-conventional-changelog-custom-format
Based on cz-conventional-changelog.
Prompts for conventional changelog standard with an extra step to insert Jira ID. Jira ID is auto-detected from your branch name by default.

Jira ID in the format of /^[A-Z0-9]+-[0-9]+\$/, "ADR-123" for example, will be automatically detected from the current branch name and be displayed as default at the prompt step. The step is optional so you can skip it if you do not have a Jira ID.
Install
with npm
npm install --save-dev cz-conventional-changelog-custom-format
or with yarn
yarn add --dev cz-conventional-changelog-custom-format
To enable it, please update your package.config as the following
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog-custom-format"
}
},Features
- 🔥 It works with semantic-release and Standard Version right out of the box.
- 💚 It share the same configurtion with commitlint's default configuration.
- 💆 It prompts an optional step for inserting a custom format for the commit header.
- 💆♀️ It prompts an optional step for inserting your Jira ID.
- 🤖 It automatically detects Jira ID from your current branch name and display it as default value at the prompt step.
- 📝 Jira ID is composed into the top of your commit message body.
Configuration
package.json
Like commitizen, you specify the configuration of cz-conventional-changelog through the package.json's config.commitizen key.
{
// ... default values
"config": {
"commitizen": {
"path": "./node_modules/cz-conventional-changelog-custom-format",
"disableScopeLowerCase": false,
"disableSubjectLowerCase": false,
"maxHeaderWidth": 100,
"maxLineWidth": 100,
"defaultType": "",
"defaultScope": "",
"defaultSubject": "",
"defaultBody": "",
"defaultFormat": "jira",
"defaultIssues": "",
"types": {
...
"feat": {
"description": "A new feature",
"title": "Features"
},
...
}
}
}
// ...
}Environment variables
The following environment varibles can be used to override any default configuration or package.json based configuration.
CZ_TYPE= defaultTypeCZ_SCOPE= defaultScopeCZ_SUBJECT= defaultSubjectCZ_BODY= defaultBodyCZ_FORMAT= defaultFormat ('jira')CZ_MAX_HEADER_WIDTH= maxHeaderWidthCZ_MAX_LINE_WIDTH= maxLineWidth
Custom subject formatting
To make this more flexible, you can override the header format by passing a custom format in the format step.
Format types:
- standard:
'%type(%scope): %subject' - jira:
'%type(%scope)[%jira]: %subject' 'your own format'
Variables:
%type: type of change%scope: scope of change%jira: jira id%subject: subject of change
Commitlint
If using the commitlint js library, the "maxHeaderWidth" configuration property will default to the configuration of the "header-max-length" rule instead of the hard coded value of 100. This can be ovewritten by setting the 'maxHeaderWidth' configuration in package.json or the CZ_MAX_HEADER_WIDTH environment variable.
