轻松安装和更新分散式存储库中的集中式pre-commit钩子和它们的配置文件
项目描述
集中式 pre-commit
配置
轻松安装和更新分散式存储库中的集中式pre-commit钩子和它们的配置文件。
为了能够使用单个命令安装所有工具和代码检查器,并使用最新的集中式配置,我们将您的工具配置文件(.pre-commit-config.yaml
、isort.cfg
、.flake8
、.clang-format
、...)从URL复制到本地git目录,然后安装 pre-commit
。
我们还大量依赖 pre-commit
,这是一个用于管理和维护多语言pre-commit钩子的框架。请参阅此处的 pre-commit
文档。
哲学
为了能够使用单个命令安装所有工具和代码检查器,并使用最新的集中式配置,我们将您的工具配置文件(.pre-commit-config.yaml
、isort.cfg
、.flake8
、.clang-format
、...)从URL复制到本地git目录,然后安装 pre-commit
。
为什么不只使用 @asotile 的 pre-commit
?根据他的说法
pre-commit 不会直接支持配置的可变性和引用集中式存储库。这会导致重复性和维护性方面出现许多问题。这是一个在看到代码检查器更改行为并突然导致每个存储库的master分支出现问题时做出的早期设计决策。
因此,如果您不同意并希望具有集中式代码检查配置的分散式存储库,您仍然需要使用一个在pre-commit之上的工具来自我伤害。或者更现实的是,定期从集中式存储库更新配置文件。
更严重的是,另一种选择是使用 all-repos 来使用分散式配置批量更新大量分散式仓库。
安装
pip3 install centralized-pre-commit-conf
用法
查看 pre-commit-conf --help
了解选项。
安装钩子
例如,使用此 config.yaml
文件在 适当的搜索路径之一
configuration_files:
- ".pylintrc"
- ".pre-commit-config.yaml"
repository: https://mycompany.net/lint-conf/
branch: master
update_gitignore: True
path: "pre-commit/static/"
gitignore_info_text:
"# Configuration file added automatically by 'centralized-pre-commit-conf'"
pre-commit-conf
将从 https://mycompany.net/lint-conf/master/pre-commit/static/
恢复定义的配置文件并更新 .gitignore
You can set the option system wide in /home/pierre/.config/pre-commit-conf/config.yaml.
✨ 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. 🎉
以下是 .gitignore
的内容
# Configuration file added automatically by 'centralized-pre-commit-conf'
.pre-commit-config.yaml
.pylintrc
然后,使用相同的配置,使用 pre-commit-conf --branch hardcore-pylint-conf
将尝试从 https://mycompany.net/lint-conf/hardcore-pylint-conf/pre-commit/static/
恢复配置文件。
You can set the option system wide in /home/pierre/.config/pre-commit-conf/config.yaml.
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.
下一次提交假设 .pre-commit-config.yaml
已正确完成,您的修改文件将使用集中式配置进行代码检查。
开发/贡献
pip3 install -e ".[test]"
pre-commit-conf
python3 -m pytest --cov centralized_pre_commit_conf
欢迎 Pull requests :)
项目详情
哈希值 for centralized_pre_commit_conf-0.6.1-py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 92bbab345e2c59117ef31861d38b444d4bbc3ea47b7b307cc42323a21017cf6e |
|
MD5 | 08ca2c0eb3d3bd4d729021a35bb4bf9d |
|
BLAKE2b-256 | 99eb3affa3da83ed0d0e9bf9497b0eccaaa417aaca5ccd5e1887469a3f920bce |