---
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v2.1.0
    hooks:
      - id: trailing-whitespace
      - id: mixed-line-ending
      - id: check-byte-order-marker
      - id: check-executables-have-shebangs
      - id: check-merge-conflict
      - id: debug-statements
      - id: flake8
        additional_dependencies:
          - hacking<1.2.0,>=1.1.0
      - id: check-yaml
        files: .*\.(yaml|yml)$
  - repo: https://github.com/adrienverge/yamllint.git
    rev: v1.14.0
    hooks:
      - id: yamllint
        files: \.(yaml|yml)$
        types: [file, yaml]
        entry: yamllint --strict -f parsable
  - repo: https://github.com/ansible/ansible-lint
    rev: v4.0.1
    hooks:
      - id: ansible-lint
        files: \.(yaml|yml)$
        entry: python -m ansiblelint --force-color -v
  - repo: https://github.com/openstack-dev/bashate.git
    rev: 0.6.0
    hooks:
      - id: bashate
        entry: bashate --error . --verbose --ignore=E006,E040
        # Run bashate check for all bash scripts
        # Ignores the following rules:
        # E006: Line longer than 79 columns (as many scripts use jinja
        #       templating, this is very difficult)
        # E040: Syntax error determined using `bash -n` (as many scripts
        #       use jinja templating, this will often fail and the syntax
        #       error will be discovered in execution anyway)
