repos:
  - repo: meta
    hooks:
    -   id: identity
  - repo: https://github.com/nbQA-dev/nbQA
    rev: 0.13.0
    hooks:
    - id: nbqa-check-ast
  - repo: https://github.com/pycqa/isort
    rev: 5.13.2
    hooks:
      - id: isort
  - repo: https://github.com/pycqa/flake8
    rev: 3.9.0
    hooks:
    - id: flake8
      # If `CI_MERGE_REQUEST_TARGET_BRANCH_SHA` env var is set then this will
      # run flake8 on the diff of the merge request, otherwise it will run
      # flake8 as it would usually execute via the pre-commit hook
      entry: bash -c 'if [ -z ${CI_MERGE_REQUEST_TARGET_BRANCH_SHA} ]; then (flake8 "$@" --max-line-length 88); else (git diff $CI_MERGE_REQUEST_TARGET_BRANCH_SHA...$CI_MERGE_REQUEST_SOURCE_BRANCH_SHA | flake8 --diff --max-line-length 88); fi' --
  - repo: https://github.com/myint/rstcheck
    rev: 3f92957478422df87bd730abde66f089cc1ee19b  # commit where pre-commit support was added
    hooks:
    -   id: rstcheck
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.4.0
    hooks:
    - id: check-added-large-files
    - id: check-ast
    - id: check-json
    - id: check-yaml
    - id: check-toml
    - id: end-of-file-fixer
    - id: trailing-whitespace
    - id: check-docstring-first
    - id: check-merge-conflict
    - id: mixed-line-ending
      args: [--fix=lf]
