---
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.3.0
    hooks:
      - id: check-added-large-files
      - id: check-case-conflict
      - id: check-executables-have-shebangs
      - id: check-shebang-scripts-are-executable
      - id: check-symlinks
      - id: destroyed-symlinks

      - id: check-json
      - id: check-yaml
      - id: check-xml
      - id: check-toml

      - id: check-merge-conflict
      - id: end-of-file-fixer
      - id: mixed-line-ending
        args: [--fix=lf]
      - id: trailing-whitespace
        exclude: \.ambr$

      - id: name-tests-test
        # TODO: Remove once the django api uses pytest
        exclude: ^(api.*)$

  - repo: https://github.com/pre-commit/mirrors-prettier
    rev: v2.7.1
    hooks:
      - id: prettier
        files: \.(md|mdx|yml|yaml|js|jsx|ts|tsx|json|css)$
        exclude: ^legacy/public(?!/js/airtime)

  - repo: https://github.com/asottile/pyupgrade
    rev: v2.37.3
    hooks:
      - id: pyupgrade
        args: [--py3-plus, --py36-plus]

  - repo: https://github.com/psf/black
    rev: 22.8.0
    hooks:
      - id: black

  # - repo: https://github.com/pycqa/isort
  #   rev: 5.9.3
  #   hooks:
  #     - id: isort
  #       args: ["--profile", "black", "--filter-files"]

  - repo: https://github.com/codespell-project/codespell
    rev: v2.2.1
    hooks:
      - id: codespell
        args:
          - --ignore-words=.codespellignore
          - --builtin=clear,rare,informal
        exclude: (^api/schema.yml|^legacy.*|yarn\.lock)$

  - repo: local
    hooks:
      - id: requirements.txt
        name: requirements.txt
        description: Generate requirements.txt
        entry: tools/extract_requirements.py dev
        pass_filenames: false
        language: script
        files: setup.py$
