/commitiquette

Plugin for Commitizen that uses commitLint configuration

Primary LanguageTypeScriptMIT LicenseMIT

Commitiquette

Plugin for Commitizen that uses commitLint configuration. Allows you to use both Commitizen and commitLint with a single configuration.

Node.js CI codecov npm version

Installation

You will first need to follow the commitizen and commitlint instalation instructions if you do not already have these installed.

Use npm or yarn to install commitiquette into your project.

npm install commitiquette --save-dev

Usage

Update package.json Commitizen configuration.

  "config": {
    "commitizen": {
      "path": "commitiquette"
    }
  },

Purpose

The purpose of this project is to have a single configuration for both commitlint and commitizen -- while prompting the user for each answer.

Similar Projects

Both of these wonderful projects are use the commitlint config as well.

Commitiquette differs by using simple prompts, list selects whenever possible, for answers -- much like the cz-conventional-changelog commitizen plugin.

Fully Configurable

Commitiquitte is fully configurable using the commitlint configuration.

Examples

Disable Prompting for scope

module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'scope-empty': [2, 'always']
  }
};

List select for scope

module.exports = {
  extends: ['@commitlint/config-conventional'],
  rules: {
    'scope-enum': [2, 'always', ['docs', 'core', 'lib', 'misc', 'etc']]
  }
};

Filtering and Validation

Commitiquette will validate against all but the deprecated commitlint rules.

NOTE: This is not a replacement for commitlint. Commitlint should still validate the message before each commit.

Where possible, commitlint rules will be used to filter messages.

Validation is run at Level Error (2) -- where filtering will apply at if the rule is set to Warn (1) or Error (2.)

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT