# 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: 16.14.2

repos:
  - repo: https://github.com/pre-commit/mirrors-prettier
    rev: v4.0.0-alpha.8
    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/psf/black
    rev: 24.8.0
    hooks:
      - id: black

  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: "v0.6.3"
    hooks:
      - id: ruff

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

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

  - repo: https://github.com/PyCQA/doc8
    rev: v1.1.2
    hooks:
      - id: doc8

  - repo: "https://github.com/kynan/nbstripout"
    rev: "0.7.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: v16.9.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.5.0
          - stylelint-config-standard-scss@13.1.0
