A commitizen plugin that combines gitmoji and conventional commits.
With pip
or any other package manager of your choice, the usual way:
pip install cz-conventional-gitmoji
This package can be used as a normal commitizen
plugin, either by specifying the name on the command line
cz --name cz_gitmoji commit
or by setting it in your pyproject.toml
[tool.commitizen]
name = "cz_gitmoji"
This will make commitizen
use the commit message parsing rules defined by this plugin, which are 100% compatible with conventional commits. As such, the gitmojis are completely optional and all commands will continue to validate commit messages in conventional format just fine. This is useful if you're transitioning an existing repo to cz-conventional-gitmoji
or you work in a team in which some colleagues don't like gitmojis.
Apart from the conventional-gitmoji rules, this package provides the gitmojify
command which is also available as a pre-commit hook. The command reads a commit message either from cli or a commit message file and prepends the correct gitmoji based on the type. If the message already has a gitmoji, it is returned as is.
$ gitmojify -m "init: initial version"
๐ init: initial version
To use it as a pre-commit hook, install this packages as well as commitizen
and put the following into your .pre-commit-config.yaml
repos:
- repo: https://github.com/ljnsn/cz-conventional-gitmoji
rev: 0.2.4
hooks:
- id: conventional-gitmoji
Make sure to install the relevant pre-commit hooks with
To use commitizen
hooks with conventional-gitmoji
, you need to add the package as an extra dependency.
- repo: https://github.com/commitizen-tools/commitizen
rev: v3.29.0
hooks:
- id: commitizen
additional_dependencies: [cz-conventional-gitmoji]
pre-commit install --install-hooks
Commit with a message in conventional format that contains a valid type mapped by conventional gitmoji and the gitmoji will automagically be added.
cz commit
.--simple-emojis
option to use only the emojis relating to cz_conventional_commits
types.--simple-types
option to use only the types used by cz_conventional_commits
.--conventional
option to put the emoji in the commit message, making it compatible with cz_conventional_commits
.