Easily install and update centralized pre-commit hooks and their configuration files in decentralized repositories
Project description
Centralized pre-commit
configuration
Easily install and update centralized pre-commit hooks and their configuration files in decentralized repositories.
To be able to validate and automatically fix commits we're using git hooks.
We're also heavily relying on pre-commit
, which is a framework for managing
and maintaining multi-language pre-commit hooks. Please refer to the
pre-commit documentation here.
Philosophy
In order to be able to install all the tools and linters in a single
command with up to date configuration, we're copying the configurations
files of your tools (.pre-commit-config.yaml
, isort.cfg
, .flake8
,
.clang-format
, ...) from an URL to your local git directory and we
then install pre-commit
.
Installation
pip3 install centralized-pre-commit-conf
Usage
See pre-commit-conf --help
for options.
Installing hooks
For example with this config.yaml
in one of the appropriate
search paths:
configuration_files :
- ".pylintrc"
- ".pre-commit-config.yaml"
repository: https://mycompany.net/lint-conf/
branch: master
path: "pre-commit/static/"
gitignore_info_text: "# Configuration file added automatically by 'centralized-pre-commit-conf'"
pre-commit-conf
would recover the defined configuration files from
https://mycompany.net/lint-conf/master/pre-commit/static/
and update the .gitignore
:
✨ Successfully retrieved .pre-commit-config.yaml ✨
✨ Successfully retrieved .pylintrc ✨
✨ Updated .gitignore successfully with {'.pre-commit-config.yaml', '.pylintrc'}. ✨
🎉 2 configuration files recovered and pre-commit installed correctly. 🎉
Here would the content of the .gitignore
:
# Configuration file added automatically by 'centralized-pre-commit-conf'
.pre-commit-config.yaml
.pylintrc
Then with the same configuration, using pre-commit-conf --branch hardcore-pylint-conf
would try to recover
the configuration files from https://mycompany.net/lint-conf/hardcore-pylint-conf/pre-commit/static/
instead.
Found existing .pre-commit-config.yaml ⁉️ Use '-f' or '--replace-existing' to force erase.
Found existing .pylintrc ⁉️ Use '-f' or '--replace-existing' to force erase.
All configuration files already existed.
Next commit supposing the .pre-commit-config.yaml
is done correctly
your modified files we be linted with the centralized configuration.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for centralized_pre_commit_conf-0.3.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9fc3cafd3670cf70d605d49f7d2db8a3b688170d364ddcd63ec6af22eb7a91e5 |
|
MD5 | 2a0d151ed5a1f1b0ab616c28e8a4fc34 |
|
BLAKE2b-256 | af74bceec8043972dcd4c92c1d8482aabb355fe852c16b1299c7380edf4b3aa7 |