跳转到主要内容

管理git钩子的库

项目描述

Greenbone Logo

自动钩子

PyPI release Build and test Python package codecov

使用pyproject.toml设置,用Python管理并编写git钩子的库。

在创建git提交时,使用纯Python实现自动格式化和代码检查,例如使用blackruff,您是否也想要在pyproject.toml文件中配置git钩子设置?

欢迎来到autohooks

为什么?

已经存在几个用于管理和执行git钩子的杰出库。例如:huskylint-stagedprecise-commitspre-commit

然而,它们需要除Python之外的其他解释器(例如husky),需要除pyproject.toml之外的其他配置文件,或者过于模糊(例如pre-commit)。pre-commit是用Python编写的,但它的支持钩子是用各种语言编写的。此外,它自己维护依赖关系,而不在当前环境中安装。

解决方案

autohooks是一个纯Python库,它安装了一个最小的可执行git钩子。它允许通过支持不同的模式来决定如何维护钩子依赖关系,并将其设置存储在众所周知的pyproject.toml文件中。

Autohooks

需求

autohooks需要Python 3.9+。

插件

  • 通过black进行Python代码格式化

  • 通过autopep8进行Python代码格式化

  • 通过ruff进行Python代码检查

  • 通过pylint进行Python代码检查

  • 通过flake8进行Python代码检查

  • 通过mypy进行Python代码检查

  • 通过isort进行Python导入排序

  • 通过pytest运行测试

安装autohooks

使用poetry快速安装ruffblack插件

poetry add --dev autohooks autohooks-plugin-black autohooks-plugin-ruff
poetry run autohooks activate --mode poetry
poetry run autohooks plugins add autohooks.plugins.black autohooks.plugins.ruff

autohooks activate的输出应类似于

 ✓ autohooks pre-commit hook installed at /autohooks-test/.git/hooks/pre-commit using poetry mode.

Autohooks具有可扩展的插件模型。每个插件都提供不同的功能,通常需要安装额外的依赖项。

目前autohooks支持三种模式来管理这些依赖项

  • 使用pythonpath通过pip进行依赖管理
  • 使用poetry通过poetry进行依赖管理(推荐)
  • 使用pipenv通过pipenv进行依赖管理

这些模式处理autohooks、插件及其依赖项在git钩子执行期间如何加载。

如果在pyproject.toml配置文件中没有指定模式,并且激活期间也没有设置模式,autohooks将默认使用pythonpath模式

有关如何使用这些模式结合pippoetrypipenv的详细信息,请参阅文档

命令补全

autohooks随附bash和zsh的命令行补全支持。

bash设置

echo "source ~/.autohooks-complete.bash" >> ~/.bashrc
autohooks --print-completion bash > ~/.autohooks-complete.bash

或者,您可以直接使用完成命令的结果,与 bash shell 的 eval 函数一起使用。

eval "$(autohooks --print-completion bash)"

zsh设置

echo 'fpath=("$HOME/.zsh.d" $fpath)' >> ~/.zsh
mkdir -p ~/.zsh.d/
autohooks --print-completion zsh > ~/.zsh.d/_autohooks

或者,您可以直接使用完成命令的结果,与 zsh shell 的 eval 函数一起使用。

eval "$(autohooks --print-completion zsh)"

维护者

该项目由 Greenbone AG 维护。

贡献

您的贡献非常受欢迎。请在 GitHub 上 创建一个拉取请求。较大的更改需要先通过 GitHub 上的 问题部分 与开发团队讨论。

许可证

版权所有 (C) 2019 - 2024 Greenbone AG

在 GNU 通用公共许可证 v3.0 或更高版本下许可。

项目详情


下载文件

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

源代码发行版

autohooks-24.2.0.tar.gz (74.1 kB 查看哈希值)

上传时间 源代码

构建发行版

autohooks-24.2.0-py3-none-any.whl (35.5 kB 查看哈希值)

上传时间 Python 3

由以下机构支持

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