支持的钩子
特色钩子 ¶
这里有一些精心挑选的仓库,它们提供了 pre-commit 集成。
这些钩子非常流行,并且通常在大多数设置中都能很好地工作!
此列表并非旨在详尽无遗
由 pre-commit 团队提供
- pre-commit/pre-commit-hooks: 一些普遍有用的与语言无关的钩子!
- pre-commit/pygrep-hooks: 一些基于正则表达式的快速钩子,用于执行少量快速语法检查
- pre-commit/sync-pre-commit-deps: 根据其他已安装的钩子同步 pre-commit 钩子依赖项
- pre-commit/mirrors-*: 一些流行工具的 pre-commit 镜像
适用于 Python 项目
- asottile/pyupgrade: 自动升级语法以适应更新版本的语言
- asottile/(其他): pre-commit 创建者的一些其他仓库
- psf/black: uncompromising 的 Python 代码格式化程序
- hhatto/autopep8: 自动修复 PEP8 违规
- astral-sh/ruff-pre-commit: Python 的 ruff 代码检查器和格式化程序
- google/yapf: 一个高度可配置的 Python 格式化程序
- PyCQA/flake8: Python 的代码检查器框架
- PyCQA/isort: Python 的导入排序器
- PyCQA/(其他): 一些其他 Python 代码质量工具
- adamchainz/django-upgrade: 自动升级 Django 项目代码
适用于 Shell 脚本
- shellcheck-py/shellcheck-py: 在脚本上运行 shellcheck
- openstack/bashate: Bash 程序的代码风格强制
适用于 Web
- biomejs/pre-commit: 一个用 Rust 编写的快速格式化程序/修复程序
- standard/standard: 代码检查器/修复程序
- shssoichiro/oxipng: 优化 PNG 文件
适用于配置文件
- python-jsonschema/check-jsonschema: 使用 jsonschema 检查许多常见的配置
- rhysd/actionlint: 检查您的 GitHub Actions 工作流程文件
- google/yamlfmt: YAML 文件的格式化程序
- adrienverge/yamllint: YAML 文件的代码检查器
适用于文本/文档/散文
- crate-ci/typos: 查找并修复常见的印刷错误
- thlorenz/doctoc: 在 Markdown 文件中生成目录
- amperser/proselint: 散文的代码检查器。
- markdownlint/markdownlint: Markdown 代码检查工具
- codespell-project/codespell: 检查代码中常见的拼写错误
用于检查提交信息
用于密钥扫描/安全
适用于其他编程语言
- realm/SwiftLint: 强制执行 Swift 风格和约定
- nicklockwood/SwiftFormat: Swift 的格式化程序
- AleksaC/terraform-py: 格式化和验证 Terraform 语法
- rubocop/rubocop: Ruby 的静态分析和格式化
- bufbuild/buf: Protocol Buffers 的工具
- sqlfluff/sqlfluff: SQL 的模块化代码检查器和自动格式化程序
- aws-cloudformation/cfn-lint: AWS CloudFormation 代码检查器
- google/go-jsonnet: jsonnet 的代码检查器/格式化程序
- JohnnyMorganz/StyLua: 一个有主见的 Lua 代码格式化程序
- Koihik/LuaFormatter: Lua 代码的格式化程序
- mrtazz/checkmake: Makefile 语法的代码检查器
查找钩子 ¶
建议使用您喜欢的搜索工具来查找项目中可用的现有钩子。
例如,以下是一些使用 sourcegraph 可能有用的搜索:
- 在 Python 文件上运行的钩子:
file:^\.pre-commit-hooks\.yaml$ "types: [python]"
- 在 Shell 文件上运行的钩子:
file:^\.pre-commit-hooks\.yaml$ "types: [shell]"
- 流行项目中的 pre-commit 配置:
file:^\.pre-commit-config\.yaml$
您可能还会发现 GitHub 的搜索 也很有用,尽管其查询和排序功能非常有限,并且需要登录
添加到此页面 ¶
此页面的先前版本是钩子的清单,维护所列工具的质量很麻烦。
此页面并非旨在详尽无遗
您可以发送 拉取请求 来扩展此列表,但是您必须遵循一些要求,否则您的 PR 将在没有评论的情况下关闭
- 该工具必须已经相当流行(>500 星)
- 该工具必须使用受管理的语言(没有
system
/script
/docker
钩子) - 该工具必须对文件进行操作