dikort

Commit messages checking tool

31
1
Python

Dikort: git commit message format checking tool

Lint and Test
dikort
codecov
PyPi version
Python versions
black-formatter
wemake-python-styleguide
License: MIT

The tool that helps you make commit messages in your repository more clear.

Key Features

  • Wide check list: author name, email, trailing periods, capitalize sentence, singleline summary, singoff, gpg, regex.
  • Checks any commit range: acceptable for both CI and post-commit hook usage
  • Separate rules for both: merge and regular commits
  • Support all available python versions: 3.7+

Technical Requirements/Installation

Pre-requirements

Install any supported python distribution (for now it’s 3.7+), and pip package management tool. Also make sure you have git installed

Examples:

Ubuntu/Debian

sudo apt install python3 python3-pip git

CentOS/RedHat/Fedora

sudo yum install python3 git

Installation

By default, pip tries to install package directly to you system. You may need to use sudo to achieve this

sudo pip3 install dikort

The more right way is to install to your home directory. But be sure you have $HOME/.local/bin at your $PATH variable

pip3 install --user dikort

Running and Configuring

Dikort is a command line tool. To see all available options with explanation hit dikort -h.
The only one unnamed option is commit range in the notation of "<commit1>..<commit2>", where "commit1" and "commit2" are any of:
hash, branch, tag, HEAD pointer.

Examples

Check last commit. Use this in git post-commit hook

dikort HEAD~1..HEAD

Check last 10 commits

dikort HEAD~10..HEAD

Check all commits in fix-123 branch

dikort master..fix-123

Configure through command line

dikort --enable-length --enable-capitalized-summary --min-length=20 --max-length=72 HEAD~5..HEAD

Get log and save it (DEBUG mode)

dikort --enable-logging --logging-level=DEBUG 2>debug.log

Run in docker

Also you can run inside docker. Just mount your repository to container and tell dikort where to find.

docker run -v `pwd`:/tmp/repo weastur/dikort:latest --repository=/tmp/repo --enable-length

File configuration

Refer to config example, as a full configuration file. By default, config searched at ./.dikort.cfg

Development Status

Dikort is in active development and accepts contributions. See our Contributing section below for more details.

We report new releases information here.

How to contribute

Fork, clone, setup development environment. No third-party build or test tools need to be insttalled at your system.

python3 -m venv .venv
. ./.venv/bin/activate
pip install setuptools wheel
pip install -e '.[dev]'

After that you’ll have dikort and all development tools installed into virtualenv. Just run here dikort to execute your development version.
Hack, then make PR. Don’t forget to write unit tests, and check your code:

dikort
flake8 dikort
isort dikort
black dikort
coverage run -m unittest discover
coverage report

Or you can just install git-hooks

Git hooks

ln -s -r -t ./.git/hooks/ ./hooks/*

License

MIT, see LICENSE.