English - Español
CLint
is a command line tool that allows you to validate messages related to git commits in different ways, ensuring
that the message is Conventional Commits compliant.
- python, for its awesomeness. Supported versions: 3.7.2+
- poetry, for packaging and dependency management
- change, to help generate the changelog
For now, the only way to install CLint
is through pip
(or tools like poetry
and pipenv
, which use pip
behind
the scenes), but we are working on making CLint
available through package managers, like homebrew
, chocolatey
and
others.
# Install with pip
$ pip install clint-cli
# Install with poetry
$ poetry add clint-cli
# Install with pipenv
$ pipenv install clint-cli
- Validate a commit message in the command line.
- Allow to handle git
commit-msg
hook. - Validate a commit message in the command line through pipes.
- Make pre-commit compatible.
- Allow to build a commit message through command line prompts.
# Validate a sample message
$ clint "feat(scope): validate this message"
Your commit message is CC compliant!
# Validate from file
$ echo "feat(scope): validate this message" > commit_message.txt
$ clint --file commit_message.txt
Your commit message is CC compliant!
# Validate through pipes
$ cat commit_message.txt | clint
Your commit message is CC compliant!
# Validation error for invalid type (typo)
$ echo "feta(scope): validate this message" | clint
type_valid: Type 'feta' is not valid.
# Enable git hook on /path/to/repo
$ clint --enable-hook
Enable hook: Hook enabled at /path/to/repo/.git/hooks/commit-msg
# Disable git hook on /path/to/repo
$ clint --disable-hook
Disable hook: Hook disabled at /path/to/repo/.git/hooks/commit-msg
You can view the history of changes in the project changelog.
CLint
is currently in beta status, and is under active development. The goal is to achieve at least
the planned features, and then continue maintaining the code, making it compatible with future
versions of Python and the libraries used in the project.
CLint
tries to be what other tools already are, like the
great commitlint. The difference
with similar tools is that those are
built over Node.js
, so they are focused on Javascript
developers. If you are not, you will be forced to
install Node.js
anyway in order to use those tools.
CLint
is distributed under the GPL v3 license.