---
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks.git
    rev: v5.0.0
    hooks:
      - id: check-added-large-files
      - id: check-executables-have-shebangs
      - id: check-json
      - id: check-merge-conflict
      - id: check-shebang-scripts-are-executable
      - id: check-symlinks
      - id: check-toml
      - id: check-xml
      - id: check-yaml
        # yamllint disable-line rule:line-length
        exclude: ^Ansible/roles/(wap|router)/vars/main\.yaml$|^Compose/matrix/synapse/homeserver\.yaml$
      - id: detect-private-key
      - id: end-of-file-fixer
      - id: trailing-whitespace
        exclude: \.diff$

  - repo: https://github.com/codespell-project/codespell.git
    rev: v2.3.0
    hooks:
      - id: codespell
        args:
          - '-L=doas,fo,anull'

  - repo: https://github.com/Yelp/detect-secrets.git
    rev: v1.5.0
    hooks:
      - id: detect-secrets
        exclude: ^Ansible/roles/router/files/nsd/

  - repo: https://gitlab.com/devopshq/gitlab-ci-linter.git
    rev: v1.0.6
    hooks:
      - id: gitlab-ci-linter
        args:
          - "--server"
          - https://git.shore.co.il

  - repo: https://github.com/adrienverge/yamllint.git
    rev: v1.35.1
    hooks:
      - id: yamllint
        exclude: ^Compose/matrix/synapse/homeserver\.yaml$$

  - repo: https://github.com/executablebooks/mdformat.git
    rev: 0.7.19
    hooks:
      - id: mdformat

  - repo: https://git.shore.co.il/nimrod/pre-commit-hooks.git
    rev: v0.5.2
    hooks:
      - id: shell-validate
      - id: ansible-syntax-check
        files: ^Ansible/[a-z]*\.yaml$
        additional_dependencies:
          - 'ansible>=11'
      - id: terraform-fmt
      - id: terraform-validate
      - id: docker-compose

  - repo: https://github.com/shellcheck-py/shellcheck-py.git
    rev: v0.10.0.1
    hooks:
      - id: shellcheck

  - repo: https://github.com/AleksaC/hadolint-py.git
    rev: v2.12.1b3
    hooks:
      - id: hadolint
