サポートされているフック
注目のフック ¶
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: 非妥協的な Python コードフォーマッタ
- hhatto/autopep8: PEP 8 の違反を自動的に修正します
- astral-sh/ruff-pre-commit: Python 用の ruff リンターとフォーマッタ
- google/yapf: 高度な設定が可能な Python フォーマッタ
- PyCQA/flake8: Python 用のリンターフレームワーク
- PyCQA/isort: Python 用のインポートソーター
- PyCQA/(その他): その他の Python コード品質ツール
- adamchainz/django-upgrade: Django プロジェクトのコードを自動的にアップグレードします
シェルスクリプトの場合
- 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 ワークフローファイルをlintします
- google/yamlfmt: YAML ファイルのフォーマッタ
- adrienverge/yamllint: YAML ファイルのリンター
テキスト/ドキュメント/文章の場合
- crate-ci/typos: 一般的なタイプミスを見つけ、修正します
- thlorenz/doctoc: Markdown ファイルに目次を生成します
- amperser/proselint: 文章のリンター。
- markdownlint/markdownlint: Markdown のlintツール
- codespell-project/codespell: コードの一般的なスペルミスをチェックします
コミットメッセージのlintの場合
シークレットスキャン/セキュリティの場合
その他のプログラミング言語の場合
- 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]"
- シェルファイルで実行されるフック:
file:^\.pre-commit-hooks\.yaml$ "types: [shell]"
- 一般的なプロジェクトでの pre-commit 設定:
file:^\.pre-commit-config\.yaml$
また、GitHub の検索 も役立つ場合があります。ただし、クエリとソート機能は非常に限定されており、ログインが必要です。
- フックを提供するリポジトリ:
path:.pre-commit-hooks.yaml language:YAML
このページへの追加 ¶
このページの以前のバージョンは、フックの羅列であり、リストされているツールの品質を維持することが困難でした。
このページは網羅的なものではありません
このリストを拡張するためにプルリクエストを送信できますが、いくつかの要件を満たす必要があります。満たさない場合は、コメントなしで PR が閉じられます。
- ツールはすでにかなり人気がある必要があります(500 個以上のスター)。
- ツールはマネージド言語を使用する必要があります(
system
/script
/docker
フックではありません)。 - ツールはファイルで動作する必要があります。