Skip to content

rcisterna/clint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English - Español

CLint: Conventional commits linter

Code style: black

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.

Technologies

  • python, for its awesomeness. Supported versions: 3.7.2+
  • poetry, for packaging and dependency management
  • change, to help generate the changelog

Installation

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

Key features

  • 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.

Planned features

  • Make pre-commit compatible.
  • Allow to build a commit message through command line prompts.

Usage examples

# 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

Changelog

You can view the history of changes in the project changelog.

Project status

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.

Source

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.

License

CLint is distributed under the GPL v3 license.