---
default_language_version:
  # force all unspecified python hooks to run python3
  python: python3
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.1.0
    hooks:
      - id: trailing-whitespace
      # Replaces or checks mixed line ending
      - id: mixed-line-ending
        args: ['--fix', 'lf']
        exclude: '.*\.(svg)$'
      # Forbid files which have a UTF-8 byte-order marker
      - id: check-byte-order-marker
      # Checks that non-binary executables have a proper shebang
      - id: check-executables-have-shebangs
      # Check for files that contain merge conflict strings.
      - id: check-merge-conflict
      # Check for debugger imports and py37+ breakpoint()
      # calls in python source
      - id: debug-statements
      - id: check-yaml
        files: .*\.(yaml|yml)$
  - repo: https://github.com/Lucas-C/pre-commit-hooks
    rev: v1.1.7
    hooks:
      - id: remove-tabs
        exclude: '.*\.(svg)$'
  - repo: https://gitlab.com/pycqa/flake8
    rev: 3.8.3
    hooks:
      - id: flake8
        additional_dependencies:
          - hacking>=3.0.1,<3.1.0

# We from the Oslo project decided to pin repos based on the
# commit hash instead of the version tag to prevend arbitrary
# code from running in developer's machines.  To update to a
# newer version, run `pre-commit autoupdate` and then replace
# the newer versions with their commit hash.

default_language_version:
  python: python3

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: 9136088a246768144165fcc3ecc3d31bb686920a # v3.3.0
    hooks:
      - id: trailing-whitespace
      # Replaces or checks mixed line ending
      - id: mixed-line-ending
        args: ['--fix', 'lf']
        exclude: '.*\.(svg)$'
      # Forbid files which have a UTF-8 byte-order marker
      - id: check-byte-order-marker
      # Checks that non-binary executables have a proper shebang
      - id: check-executables-have-shebangs
      # Check for files that contain merge conflict strings.
      - id: check-merge-conflict
      # Check for debugger imports and py37+ breakpoint()
      # calls in python source
      - id: debug-statements
      - id: check-yaml
        files: .*\.(yaml|yml)$
  - repo: local
    hooks:
      - id: flake8
        name: flake8
        additional_dependencies:
          - hacking>=3.0.1,<3.1.0
        language: python
        entry: flake8
        files: '^.*\.py$'
        exclude: '^(doc|releasenotes|tools)/.*$'

Move flake8 as a pre-commit local target.
Move flake8 as a pre-commit local target.

The goal here is to avoid conflicts between flake8 and hacking version each
2 days.

Inspired from nova's approach[1].

The flake8 version to install will be determined by hacking and
requirements[2] will stay aligned instead of relying on different versions.

[1] https://opendev.org/openstack/nova/src/branch/master/.pre-commit-config.yaml#L26-L35
[2] https://opendev.org/openstack/hacking/src/branch/master/requirements.txt#L1

Change-Id: I9ffd46865477b3fa7d43258d67dd0ec224ee6467
