Skip to content

pre-commit-crocodile

Release Python Downloads License
Build Bugs Code Smells Coverage Lines of Code Quality Gate Status
pre-commit Commitizen friendly gcil pre-commit-crocodile guidelines

Git hooks manager intended for developers using pre-commit, prek and commitizen.

Documentation: https://radiandevcore.gitlab.io/tools/pre-commit-crocodile
Package: https://pypi.org/project/pre-commit-crocodile/


Features

pre-commit-crocodile uses the following features:

pre-commit-crocodile provides the following features:


Preview

preview.svg


Usage

usage: pre-commit-crocodile [-h] [--version] [--no-color] [--update-check] [--settings] [--set GROUP KEY VAL]
                            [-l | -i | -c | -b | -e | -d | -a | -C | -r] [--config FOLDER | -D] [--commit]
                            [--components | --remotes | --no-components] [--offline] [--stage STAGE]
                            [--set-engine [ENGINE]] [--]

pre-commit-crocodile: Git hooks manager intended for developers using pre-commit, prek and commitizen

internal arguments:
  -h, --help             # Show this help message
  --version              # Show the current version
  --no-color             # Disable colors outputs with 'NO_COLOR=1'
                         # (or default settings: [themes] > no_color)
  --update-check         # Check for newer package updates
  --settings             # Show the current settings path and contents
  --set GROUP KEY VAL    # Set settings specific 'VAL' value to [GROUP] > KEY
                         # or unset by using 'UNSET' as 'VAL'

modes arguments:
  -l, --list             # List Git hooks installed in sources
  -i, --install          # Install dependencies for pre-commit hooks
  -c, --configure        # Update sources with hooks configurations
  -b, --badges           # Update documentation with badges configurations
  -e, --enable           # Enable pre-commit hooks
  -d, --disable          # Disable pre-commit hooks
  -a, --autoupdate       # Autoupdate pre-commit hooks
  -C, --clean            # Clean pre-commit cached hooks
  -r, --run              # Run pre-commit hooks

configurations arguments:
  --config FOLDER        # Use configurations from a specific folder
  -D, --default          # Use global default configurations instead of sources
  --commit               # Commit configurations changes automatically (implies --configure)
  --components           # Import components from GitLab with 'include: component:'
  --remotes              # Import components from GitLab with 'include: remote:'
  --no-components        # Import components templates locally instead of 'include: component:'
  --offline              # Use offline mode to disable configurations autoupdate
  --stage STAGE          # Run a specific pre-commit stage with --run
                         # (use 'list' to list supported stages)

settings arguments:
  --set-engine [ENGINE]  # Set pre-commit engine to use (pre-commit, prek, default: pre-commit)

positional arguments:
  --                     # Positional arguments separator (recommended)

Installation

{
  # Option 1: If using pipx
  if type pipx >/dev/null 2>&1; then
    pipx ensurepath
    pipx install pre-commit-crocodile
    pipx upgrade pre-commit-crocodile

  # Option 2: If using pip
  else
    sudo pip3 install pre-commit-crocodile
  fi
}

Compatibility

Projects compatible with pre-commit-crocodile can use this badge to ease things for developers, both as an indicator and a documentation shortcut button :

pre-commit-crocodile

Badge in Markdown
[![pre-commit-crocodile](https://img.shields.io/badge/pre--commit--crocodile-enabled-brightgreen?logo=gitlab)](https://radiandevcore.gitlab.io/tools/pre-commit-crocodile)
Badge in HTML
<a href="https://radiandevcore.gitlab.io/tools/pre-commit-crocodile"><img src="https://img.shields.io/badge/pre--commit--crocodile-enabled-brightgreen?logo=gitlab" alt="pre-commit-crocodile" style="max-width:100%;"></a>

Projects with configurations | pre-commit-crocodile

Configure engine to use (once per user)

  • prek: Recent Rust re-implementation, in development and faster (default, recommended)
  • pre-commit: Original Python implementation, stable but slower (legacy)
pre-commit-crocodile --set-engine [pre-commit,prek]

Install dependencies (once per user)

pre-commit-crocodile --install

Enable hooks for a project

pre-commit-crocodile --enable

Manually run hooks of a project

pre-commit-crocodile --run

Disable hooks for a project

pre-commit-crocodile --disable

Projects without configurations | pre-commit

Import or refresh configurations

pre-commit-crocodile --configure

Projects maintenance | pre-commit-crocodile

Update hooks automatically

pre-commit-crocodile --autoupdate

Cleanup hooks cache

pre-commit-crocodile --clean

Dependencies

  • colored: Terminal colors and styles
  • commitizen: Simple commit conventions for internet citizens
  • pre-commit: A framework for managing and maintaining pre-commit hooks
  • pre-commit-crocodile: Git hooks manager intended for developers using pre-commit, prek and commitizen
  • prek: Better pre-commit, re-engineered in Rust
  • setuptools: Build and manage Python packages
  • update-checker: Check for package updates on PyPI
  • uv: An extremely fast Python package and project manager, written in Rust.

References