Norvell's Public Machinations

    commitlint-utils-jira-ignore
    TypeScript icon, indicating that this package has built-in type declarations

    1.7.3 • Public • Published

    commitlint-utils-jira-ignore

    A set of utils for commitlint-jira package. Part of commitlint-jira monorepo.

    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-ignore-rules commitlint-config-jira
    Configure commitlint to use jira commits messages style config
    // commitlint.config.js
    module.exports = {
      plugins: ['commitlint-plugin-jira-ignore-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-separator - this rule check if taskId header and footer is separated with provided value. NOTE: jira-task-id-separator - Now it is an object that accepts two keys: { separator: '-', ignore: ["feat"] } ignore: [ ... ] : It is an array of strings that will be ignored in the jira id validation, but will not skip the other rules.

    // Preconfigured and recommended 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"
    // ✅ 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-ignore-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

    Install

    npm i commitlint-utils-jira-ignore

    DownloadsWeekly Downloads

    4

    Version

    1.7.3

    License

    MIT

    Unpacked Size

    12.9 kB

    Total Files

    5

    Last publish

    Collaborators

    • efraa