default_install_hook_types:
- pre-commit
- commit-msg
default_stages:
- pre-commit
exclude: ^target/|\.alef/
repos:
- repo: local
  hooks:
  - id: no-project-special-casing
    name: no project-name special casing
    entry: hooks/check_project_mentions.py
    language: python
    types:
    - text
  - id: no-backend-local-naming-helpers
    name: no backend-local naming helpers
    entry: hooks/check_backend_naming_helpers.py
    language: python
    pass_filenames: false
- repo: https://github.com/Goldziher/gitfluff
  rev: v0.8.0
  hooks:
  - id: gitfluff-lint
    args:
    - --write
    stages:
    - commit-msg
- repo: https://github.com/kreuzberg-dev/pre-commit-hooks
  rev: v1.2.3
  hooks:
  - id: ai-rulez-generate
  - id: trailing-whitespace
  - id: end-of-file-fixer
    exclude: ^src/backends/php/templates/php_file_header\.jinja$
  - id: check-merge-conflict
  - id: check-added-large-files
  - id: detect-private-key
  - id: check-json
  - id: check-yaml
    args:
    - --allow-multiple-documents
    - --unsafe
  - id: check-toml
  - id: check-case-conflict
  - id: cargo-sort
  - id: cargo-fmt
    args:
    - --all
  - id: cargo-check
    args:
    - --all-targets
  - id: cargo-clippy
    args:
    - --fix
    - --allow-dirty
    - --allow-staged
    - --all-targets
    - --
    - -D
    - warnings
  - id: cargo-machete
  - id: cargo-deny
    args:
    - check
  - id: shfmt
    args:
    - -w
    - -i
    - '2'
  - id: shellcheck
  - id: oxfmt
  - id: rumdl-fmt
  - id: mypy
    files: ^hooks/.*\.py$
  - id: typos
    args:
    - --force-exclude
  - id: ruff
    files: ^hooks/.*\.py$
  - id: ruff-format
    files: ^hooks/.*\.py$
  - id: actionlint
  - id: gh-actions-updater
