hieutran-commitlint-plugin-jira-rules
v0.0.3
Published
A plugin that implement all jira commits messages style rules and validate commit messages
Downloads
10
Maintainers
Readme
For Tips and Advanced Usage you can read this Blog Post
Getting started.
Install dependencies
npm install --save-dev @commitlint/cli commitlint-plugin-jira-rules commitlint-config-jira
- commitlint-config-jira - is a recomended config who contain preconfigured rules for jira commits messages style. See all rules in description below
- commitlint-plugin-jira-rules - is a plugin that implement all jira commits messages style rules and validate commit messages
Configure commitlint to use jira commits messages style config
// commitlint.config.js
module.exports = {
plugins: ['commitlint-plugin-jira-rules'],
extends: ['jira'],
}
To lint commits before they are created you can use Husky's 'commit-msg' hook
// package.json
{
"husky": {
"hooks": {
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
}
}
Rules
Rules
jira-task-id-empty
- this rule check if commit message task id is not empty.
// If your task do not have an id use a conventional task id e.g: IB-0000
// ❌ Bad commit messages
git commit -m"My commit message body"
git commit -m":My commit message body"
// ✅ Good commit messages
git commit -m"IB-2121, IB-21: My commit message body"
git commit -m"IB-0000: My commit message body"
jira-task-id-max-length
- this rule check if jira task id length is loonger that the provided value.
// Preconfigured and recommended value in commitlint-config-jira is 9 chars
// ❌ Bad commit messages
git commit -m"IB-2121212121212121: My commit message body"
// ✅ Good commit messages
git commit -m"IB-2121: My commit message body"
git commit -m"IB-21: My commit message body"
jira-task-id-min-length
- this rule check if jira task id length is shorter that the provided value.
// Preconfigured and recommended value in commitlint-config-jira is 3 chars
// ❌ Bad commit messages
git commit -m"I1: My commit message body"
// ✅ Good commit messages
git commit -m"IB-2121: My commit message body"
git commit -m"IB-21: My commit message body"
jira-task-id-case
- this rule check if taskId is in provided case.
// Preconfigured and recommended value in commitlint-config-jira is "uppercase"
// ❌ Bad commit messages
git commit -m"ib-21: My commit message body"
// ✅ Good commit messages
git commit -m"IB-2121, IB-21: My commit message body"
git commit -m"IB-21: My commit message body"
jira-task-id-project-key
- this rule check if commit message task id starts with specific project key.
// Accept a string or an array of strings, by default is disabled
// For example ["PRJ1", "PRJ2"]
// ❌ Bad commit messages
git commit -m"IB-21: My commit message body"
// ✅ Good commit messages
git commit -m"PRJ1-21, PRJ1-22: My commit message body"
git commit -m"PRJ2-21: My commit message body"
jira-commit-status-case
- this rule check if commit status is in provided case.
// Preconfigured and recomended value in commitlint-config-jira is "uppercase"
// ❌ Bad commit messages
git commit -m"[wip]IB-21: My commit message body"
// ✅ Good commit messages
git commit -m"[WIP]IB-21: My commit message body"
jira-commit-message-separator
- this rule check if commit message separator match provided separator.
// Preconfigured and recomended value in commitlint-config-jira is ":"
// ❌ Bad commit messages
git commit -m"IB-21/ My commit message body"
git commit -m"IB-21 - My commit message body"
git commit -m"IB-21% My commit message body"
// ✅ Good commit messages
git commit -m"IB-21: My commit message body"
Customise/Override commitlint-jira-config
rules
For Tips and Advanced Usage you can read this Blog Post
// commitlint.config.js
module.exports = {
plugins: ['commitlint-plugin-jira-rules'],
extends: ['jira'],
rules: {
// to Customise/Override a rule
+ 'jira-task-id-max-length': [2, 'always', 10]
// to turn off a rule
+ 'jira-task-id-max-length': [0]
},
}
Contributing
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request ;D
Or you can sponsor via Open Collective
Author
@Gherciu/commitlint-jira Released under the MIT License. Authored and maintained by GHERCIU GHEORGHE with help from contributors (list).