https://github.com/martinmcwhorter/commitiquette
Plugin for Commitizen that uses commitLint configuration
https://github.com/martinmcwhorter/commitiquette
commitizen commitizen-adapter commitlint commitlintplugin conventional-commits
Last synced: 5 months ago
JSON representation
Plugin for Commitizen that uses commitLint configuration
- Host: GitHub
- URL: https://github.com/martinmcwhorter/commitiquette
- Owner: martinmcwhorter
- License: mit
- Created: 2020-02-03T11:31:22.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2023-08-18T20:58:59.000Z (over 1 year ago)
- Last Synced: 2024-12-03T03:38:28.839Z (5 months ago)
- Topics: commitizen, commitizen-adapter, commitlint, commitlintplugin, conventional-commits
- Language: TypeScript
- Homepage:
- Size: 1.46 MB
- Stars: 29
- Watchers: 2
- Forks: 2
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- jimsghstars - martinmcwhorter/commitiquette - Plugin for Commitizen that uses commitLint configuration (TypeScript)
README
# Commitiquette
Plugin for Commitizen that uses commitLint configuration. Allows you to use both Commitizen and commitLint with a single configuration.

[](https://codecov.io/gh/martinmcwhorter/commitiquette)
[](https://badge.fury.io/js/commitiquette)## Installation
You will first need to follow the commitizen and commitlint instalation instructions if you do not already have these installed.
- [commitizen](http://commitizen.github.io/cz-cli/)
- [commitlint](https://commitlint.js.org/#/guides-local-setup)Use npm or yarn to install commitiquette into your project.
```bash
npm install commitiquette --save-dev
```## Usage
Update `package.json` Commitizen configuration.
```json
"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.
- [@commitlint/prompt](https://www.npmjs.com/package/@commitlint/prompt)
- [@commitlint/prompt-cli](https://www.npmjs.com/package/@commitlint/prompt-cli)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
```javascript
module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'scope-empty': [2, 'always']
}
};
```### List select for scope
```javascript
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](https://choosealicense.com/licenses/mit/)