pre-commit-hooks for Debian =========================== 1. pre-commit ------------- pre-commit is a hook framework for the Git version control system. It allows managing and maintaining multi-language Git pre-commit hooks. When using multiple hooks managed by pre-commit, they are usually maintained in a Git repository on their own and then included in the pre-commit configuration file, within the repository they are being run in, like this: --- .pre-commit-config.yaml --- repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v5.0.0 hooks: - id: end-of-file-fixer - id: trailing-whitespace [...] --- Running 'pre-commit install' and 'pre-commit run --all-files' then will automatically download the referenced Git repository (pre-commit-hooks) and keep it updated. A demo repository is available upstream: https://github.com/pre-commit/demo-repo 2. pre-commit-hooks ------------------- As an alternative to referencing a (remote) Git repository and depend on its availabilty or the network connectivity to access it, hooks within pre-commit can also be configured to be used from the local filesystem. This is why the pre-commit-hooks package is included in Debian. The above example can be replicated the following way: --- .pre-commit-config.yaml --- repos: - repo: local hooks: - id: end-of-file-fixer name: end-of-file-fixer language: python entry: python3 /usr/lib/python3/dist-packages/pre_commit_hooks/end_of_file_fixer.py - id: trailing-whitespace name: trailing-whitespace language: python entry: python3 /usr/lib/python3/dist-packages/pre_commit_hooks/trailing_whitespace_fixer.py [...] --- In future, the Debian package pre-commit-hooks might include some simplification (like an include file) way to reference these local pre-commit-hooks easier. -- Daniel Baumann Mon, 21 Apr 2025 12:55:47 +0200