A framework for managing and maintaining multi-language pre-commit hooks.
Provides
Requires
License
MIT
Changelog
* Mon Sep 07 2026 Dirk Müller <dmueller@suse.com>
- update to 4.6.2:
* Fix `language: node` hooks that contain `"scripts": {"build":
...}` with npm 11.x.
* Install `language: node` hooks via `git`.
* Fixes npm 12.x compatibility
* Set `JULIA_DEPOT_PATH` for `language: julia`.
* pre-commit-ci/runner-image#335 issue by @damonbayer.
* Produce error on mistyped `--repo` for `pre-commit
autoupdate`.
* Improve performance of commit existence check in `pre-push`.
* Avoid duplicating conflicted filenames during `pre-commit run
- -all-files`.
* Sun May 17 2026 Dirk Müller <dmueller@suse.com>
- update to 4.6.0:
* `pre-commit hook-impl`: allow `--hook-dir` to be missing to
enable easier usage with `git` 2.54+ git hooks.
* `pre-commit hook-impl`: `--hook-type` is required.
* Mon Jan 19 2026 Steve Kowalik <steven.kowalik@suse.com>
- Update to 4.5.1:
* Features
+ Add pre-commit hazmat.
+ Add --fail-fast option to pre-commit
+ Upgrade ruby-build / rbenv.
+ Add language: unsupported / language: unsupported_script as aliases for
language: system / language: script (which will eventually be
deprecated).
+ Add support docker-in-docker detection for cgroups v2.
+ language: docker / language: docker_image: detect rootless docker.
+ For language: python first attempt a versioned python executable for
the default language version before consulting a potentially
unversioned sys.executable.
+ language: julia: avoid startup.jl when executing hooks
+ language: dart: support latest dart versions which require a higher sdk
+ Add language: julia.
* Fixes
+ Fix language: python with repo: local without additional_dependencies.
+ Handle when docker gives SecurityOptions: null.
+ Fix error context for invalid stages in .pre-commit-config.yaml.
+ Handle error during conflict detection when a file is named "HEAD"
+ Disable automatic toolchain switching for language: golang.
+ Fix language: r installation when initiated by RStudio.
* Fri Nov 15 2024 Marina Latini <marina.latini@suse.com>
- spec file changes:
* Specify a Group tag for recent Leap and SUSE Linux Enterprise
* Disable Perl install test as that requires network for
CPAN initialisation also on SUSE Linux Enterprise 15 SP7
* Thu Oct 24 2024 Dirk Müller <dmueller@suse.com>
- update to 4.0.1:
* Fix `pre-commit migrate-config` for unquoted deprecated
stages names with purelib `pyyaml`.
* Improve `pre-commit migrate-config` to handle more yaml
formats.
* Handle `stages` deprecation in `pre-commit migrate-config`.
* Upgrade `ruby-build`.
* Add "sensible regex" warnings to `repo: meta`.
* Add warnings for deprecated `stages` (`commit` -> `pre-
commit`, `push` -> `pre-push`, `merge-commit` -> `pre-merge-commit`).
* `language: python_venv` has been removed -- use `language:
python` instead.
* Mon Aug 05 2024 Dirk Müller <dmueller@suse.com>
- update to 3.8.0:
* Implement health checks for `language: r` so environments are
recreated if the system version of R changes.
* Thu Jun 06 2024 Dirk Müller <dmueller@suse.com>
- update to 3.7.1:
* Fix `language: rust` default language version check when
`rust-toolchain.toml` is present.
* Mon Mar 25 2024 Dirk Müller <dmueller@suse.com>
- update to 3.7.0:
* Use a tty for `docker` and `docker_image` hooks when
`--color` is specified.
* Fix `fail_fast` for individual hooks stopping when previous
hooks had failed.
* The per-hook behaviour of `fail_fast` was fixed. If you want
the pre-3.7.0 behaviour, add `fail_fast: true` to all hooks
before the last `fail_fast` hook.
* Tue Feb 27 2024 Ben Greiner <code@bnavigator.de>
- Update to 3.6.2
* Fix building golang hooks during `git commit --all`.
- Changelog for 3.6.1
* Remove `PYTHONEXECUTABLE` from environment when running.
* Handle staged-files-only with only a crlf diff.
- Build PEP517 wheel
- Skip golang test trying to download dependency
* Wed Jan 03 2024 Marina Latini <marina.latini@suse.com>
- Specify a Group tag for Leap and SUSE Linux Enterprise
* Wed Jan 03 2024 Marina Latini <marina.latini@suse.com>
- Disable Perl install test as that requires network for
CPAN initialisation also on SUSE Linux Enterprise.
* Wed Dec 13 2023 Matthias Bach <marix@marix.org> - 3.6.0
- Update to version 3.6.0
* Features
+ Check minimum_pre_commit_version first when parsing configs.
* Fixes
+ Fix deprecation warnings for importlib.resources.
+ Fix deprecation warnings for rmtree.
* Mon Nov 27 2023 Matthias Bach <marix@marix.org> - 3.5.0
- For Leap, build this on modern Python as 3.6 is no longer supported.
- On Leap, use Lua 5.3 as luarocks is not packaged for Lua 5.4.
- On Leap, disable Perl install test as that requires network for
CPAN initialisation.
* Wed Nov 01 2023 Matthias Fehring <buschmann23@opensuse.org> - 3.5.0
- update to version 3.5.0
* Features
+ Improve performance of check-hooks-apply and check-useless-excludes.
* Fixes
+ Use time.monotonic() for more accurate hook timing.
* Migrating
+ Require npm 6.x+ for language: node hooks.
- notable changes since 2.21.0
* Remove pre-commit-validate-config and pre-commit-validate-manifest,
use pre-commit validate-config and pre-commit validate-manifest
instead.
* See CHANGELOG.md
- spec file changes
* Remove python-re-assert and python-toml from the runtime requirements
* Remove python-toml from the build requirements
* Update required python-virtualenv version to 20.10.0
* Rename excluded test est_local_golang_additional_dependencies to
test_local_golang_additional_deps
* Exclude new tests that require internet access
+ test_run_example_executable
+ test_run_dep
+ test_perl_additional_dependencies
+ test_lua_additional_dependencies
* Exclude new tests that have unfulfillable dependencies
+ test_swift_language
* Add LICENSE and CHANGELOG.md to the files list
* Mon Jan 02 2023 Dirk Müller <dmueller@suse.com>
- update to 2.21.0:
* Require new-enough virtualenv to prevent 3.10 breakage
* Respect aliases with `SKIP` for environment install.
* Allow `pre-commit run --files` against unmerged paths.
* Also apply regex warnings to `repo: local` hooks.
* `rust` is now a "first class" language -- supporting `language_version`
* `r` now uses more-reliable binary installation.
* `GIT_ALLOW_PROTOCOL` is now passed through for git operations.
* `GIT_ASKPASS` is now passed through for git operations.
* Remove `toml` dependency by using `cargo add` directly.
* Support `dotnet` hooks which have dotted prefixes.
* ### Fixes
* Properly adjust `--commit-msg-filename` if run from a sub directory.
* Simplify `--intent-to-add` detection by using `git diff`.
* Fix `R.exe` selection on windows.
* Skip default `nuget` source when installing `dotnet` packages.
Files
/etc/alternatives/pre-commit
/usr/bin/pre-commit
/usr/bin/pre-commit-3.13
/usr/lib/python3.13/site-packages/pre_commit
/usr/lib/python3.13/site-packages/pre_commit-4.6.2.dist-info
/usr/lib/python3.13/site-packages/pre_commit-4.6.2.dist-info/INSTALLER
/usr/lib/python3.13/site-packages/pre_commit-4.6.2.dist-info/METADATA
/usr/lib/python3.13/site-packages/pre_commit-4.6.2.dist-info/RECORD
/usr/lib/python3.13/site-packages/pre_commit-4.6.2.dist-info/REQUESTED
/usr/lib/python3.13