跳转到主要内容

轻松安装和更新分散式存储库中的集中式pre-commit钩子和它们的配置文件

项目描述

集中式 pre-commit 配置

Build Status Coverage Status PyPI version Code style: black PRs Welcome

轻松安装和更新分散式存储库中的集中式pre-commit钩子和它们的配置文件。

为了能够使用单个命令安装所有工具和代码检查器,并使用最新的集中式配置,我们将您的工具配置文件(.pre-commit-config.yamlisort.cfg.flake8.clang-format、...)从URL复制到本地git目录,然后安装 pre-commit

我们还大量依赖 pre-commit,这是一个用于管理和维护多语言pre-commit钩子的框架。请参阅此处pre-commit 文档。

哲学

为了能够使用单个命令安装所有工具和代码检查器,并使用最新的集中式配置,我们将您的工具配置文件(.pre-commit-config.yamlisort.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 :)

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪个,请了解有关 安装软件包 的更多信息。

源分发

centralized-pre-commit-conf-0.6.1.tar.gz (10.8 kB 查看哈希值)

上传日期

构建分发

centralized_pre_commit_conf-0.6.1-py3-none-any.whl (13.1 kB 查看哈希值)

上传日期 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面