JSPM

@mindblowing/commitlint-config-jira

1.7.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 414
  • Score
    100M100P100Q101043F
  • License MIT

A recomended config who contain preconfigured rules for jira commits messages style

Package Exports

  • @mindblowing/commitlint-config-jira
  • @mindblowing/commitlint-config-jira/build/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@mindblowing/commitlint-config-jira) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

commitlint-config-jira

commitlint-config-jira checks if your commit messages meet the Jira conventional commit format.

The author of this package is looking for a job opportunity to make some 💴 for a living. If you have any offers reach me out on LinkedIn or Mail. Thanks in advance!

GitHub Multipack

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

Run the following in your terminal to create the proper hook.

npx husky add .husky/commit-msg 'commitlint --edit $1'

For version 4 and under of Husky use the following syntax instead in your package.json.

// 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

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request ;D

Or you can sponsor via Open Collective

Open Collective

Author

@Gherciu/commitlint-jira Released under the MIT License.
Authored and maintained by GHERCIU GHEORGHE with help from contributors (list).

If you like this repository star⭐ and watch👀 on GitHub