Git hooks are very useful tools that can be used in any project for many cases. Hooks can be run on every commit to verify the code, delete trailing spaces, run tests, etc. One of the tools which I’m using for it is pre-commit.
My favorite use case is checking the style and quality of Python code. It helps to do more detailed code reviews and focus on logic which is very important rather than pointing to the wrong import order.
pip install pre-commit
pre-commit-config.yaml
repos:
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v0.800
hooks:
- id: mypy
args: [--no-strict-optional, --ignore-missing-imports]
files: ^(app/|tests/)
- repo: local
hooks:
- id: black
name: black
entry: black
language: system
types: [ python ]
files: ^(app/|tests/)
- id: isort
name: isort
entry: isort
language: system
types: [ python ]
include: ^(app/|tests/)
exclude: '.*/migrations/.*'
args: [
'--line-length=110',
'--multi-line=3',
'--force-grid-wrap=0',
'--trailing-comma',
'--use-parentheses',
'--ensure-newline-before-comments',
]
- id: flake8
name: flake8
entry: flake8
language: system
types: [ python ]
files: ^(app/|tests/)
pre-commit install
pre-commit run --all-files
Copy and paste the config and have fun! Remember that more tools can be used for the configurations. For more use cases please check this repository.