# Config for pre-commit CI https://pre-commit.ci/
ci:
  autofix_commit_msg: |
    [pre-commit.ci] Automatic linting and formatting fixes
  autofix_prs: true
  autoupdate_commit_msg: "[pre-commit.ci] pre-commit autoupdate hooks"
  autoupdate_schedule: monthly

# Fix the node version to avoid a GLIBC error
# ref: https://stackoverflow.com/questions/71939099/bitbucket-pipeline-error-installing-pre-commit-ts-lint/71940852#71940852
default_language_version:
  node: 22.9.0

repos:
  - repo: "https://github.com/pycontribs/mirrors-prettier"
    rev: v3.6.2
    hooks:
      - id: prettier
        # Exclude the HTML, since it doesn't understand Jinja2
        # exclude also the webpack.config.js file has it embed complete url dificult to prettify
        # exclude the pytest-regressions folder tests/test_ally
        exclude: .+\.html|webpack\.config\.js|tests/test_a11y/

  - repo: "https://github.com/astral-sh/ruff-pre-commit"
    rev: "v0.15.4"
    hooks:
      - id: ruff
        args: [--exit-non-zero-on-fix]
      - id: ruff-format

  - repo: "https://github.com/asottile/pyupgrade"
    rev: v3.21.2
    hooks:
      - id: pyupgrade
        args: [--py37-plus]

  - repo: "https://github.com/Riverside-Healthcare/djLint"
    rev: v1.36.4
    hooks:
      - id: djlint-jinja
        types_or: ["html"]

  - repo: "https://github.com/PyCQA/doc8"
    rev: v2.0.0
    hooks:
      - id: doc8

  - repo: "https://github.com/kynan/nbstripout"
    rev: "0.9.1"
    hooks:
      - id: nbstripout

  - repo: "https://github.com/mondeja/pre-commit-po-hooks"
    rev: v1.7.3
    hooks:
      - id: remove-metadata

  - repo: "https://github.com/thibaudcolas/pre-commit-stylelint"
    rev: v17.4.0
    hooks:
      - id: stylelint
        # automatically fix .scss files where possible
        args: [--fix]
        additional_dependencies:
          # stylelint itself needs to be here when using additional_dependencies.
          - stylelint@16.26.1
          - stylelint-config-standard-scss@16.0.0

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