1
0
mirror of https://github.com/j178/prek.git synced 2026-04-25 02:11:36 +02:00
Files
prek/docs/configuration.md
T
Steven Taylor b957e17dd1 Support PREK_CONTAINER_RUNTIME=podman to override container runtime (#1033)
* feat: container runtime selection

use both docker and podman runtimes

1. if only docker on path use docker runtime
2. if only podman on path use podman runtime
3. to specify runtime use PREK_CONTAINER_RUNTIME

Signed-off-by: Steven Taylor <steven@taylormuff.co.uk>

* Tweak detection

---------

Signed-off-by: Steven Taylor <steven@taylormuff.co.uk>
Co-authored-by: Jo <10510431+j178@users.noreply.github.com>
2025-11-07 17:12:35 +08:00

2.6 KiB

Configuration

Prek is fully compatible with pre-commit configuration file .pre-commit-config.yaml, for example:

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v6.0.0
    hooks:
      - id: trailing-whitespace
      - id: end-of-file-fixer

  - repo: https://github.com/crate-ci/typos
    rev: v1.36.2
    hooks:
      - id: typos

Your existing configs work unchanged with prek.

For configuration details, refer to the official pre-commit docs: pre-commit.com

Prek specific configurations

minimum_prek_version

Specify the minimum required version of prek for the configuration. If the installed version is lower, prek will exit with an error.

Example:

minimum_prek_version: '0.2.0'

The original minimum_pre_commit_version option has no effect and gets ignored in prek.

Environment variables

Prek supports the following environment variables:

  • PREK_HOME — Override the prek data directory (caches, toolchains, hook envs). Defaults to ~/.cache/prek on macOS and Linux, and %LOCALAPPDATA%\prek on Windows.

  • PREK_COLOR — Control colored output: auto (default), always, or never.

  • PREK_SKIP — Comma-separated list of hook IDs to skip (e.g. black,ruff). See Skipping Projects or Hooks for details.

  • PREK_ALLOW_NO_CONFIG — Allow running without a .pre-commit-config.yaml (useful for ad‑hoc runs).

  • PREK_NO_CONCURRENCY — Disable parallelism for installs and runs.

  • PREK_NO_FAST_PATH — Disable Rust-native built-in hooks; always use the original hook implementation. See Built-in Fast Hooks for details.

  • PREK_UV_SOURCE — Control how uv (Python package installer) is installed. Options:

    • github (download from GitHub releases)
    • pypi (install from PyPI)
    • tuna (use Tsinghua University mirror)
    • aliyun (use Alibaba Cloud mirror)
    • tencent (use Tencent Cloud mirror)
    • pip (install via pip)
    • a custom PyPI mirror URL

    If not set, prek automatically selects the best available source.

  • PREK_NATIVE_TLS - Use system's trusted store instead of the bundled webpki-roots crate.

  • PREK_CONTAINER_RUNTIME - Specify the container runtime to use for container-based hooks (e.g., docker, docker_image). Options:

    • auto (default, auto-detect available runtime)
    • docker
    • podman

Compatibility fallbacks:

  • PRE_COMMIT_ALLOW_NO_CONFIG — Fallback for PREK_ALLOW_NO_CONFIG.
  • PRE_COMMIT_NO_CONCURRENCY — Fallback for PREK_NO_CONCURRENCY.
  • SKIP — Fallback for PREK_SKIP.