---
repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v5.0.0
    hooks:
      - id: check-added-large-files
      - id: check-case-conflict
      - id: check-executables-have-shebangs
      - id: check-xml
      - id: check-merge-conflict
      - id: detect-private-key
      - id: end-of-file-fixer
      - id: forbid-new-submodules
      - id: requirements-txt-fixer
      - id: trailing-whitespace

  - repo: https://github.com/adrienverge/yamllint.git
    rev: v1.35.1
    hooks:
      - id: yamllint
        args: [--strict]

  - repo: https://github.com/shellcheck-py/shellcheck-py
    rev: v0.10.0.1
    hooks:
      - id: shellcheck
        args: ["--severity=error"]
        exclude: "^.git"
        files: "\\.sh$"

  - repo: https://github.com/ansible/ansible-lint
    rev: v24.12.2
    hooks:
      - id: ansible-lint
        additional_dependencies:
          - jmespath==1.0.1
          - netaddr==1.3.0
          - distlib

  - repo: https://github.com/golangci/misspell
    rev: v0.6.0
    hooks:
      - id: misspell
        exclude: "OWNERS_ALIASES$"

  - repo: local
    hooks:
      - id: collection-build-install
        name: Build and install kubernetes-sigs.kubespray Ansible collection
        language: python
        additional_dependencies:
          - ansible-core>=2.16.4
          - distlib
        entry: tests/scripts/collection-build-install.sh
        pass_filenames: false

      - id: generate-docs-sidebar
        name: generate-docs-sidebar
        entry: scripts/gen_docs_sidebar.sh
        language: script
        pass_filenames: false

      - id: ci-matrix
        name: ci-matrix
        entry: tests/scripts/md-table/main.py
        language: python
        pass_filenames: false
        additional_dependencies:
          - jinja2
          - pathlib
          - pyaml

      - id: jinja-syntax-check
        name: jinja-syntax-check
        entry: tests/scripts/check-templates.py
        language: python
        types:
          - jinja
        additional_dependencies:
          - jinja2

      - id: render-readme-versions
        name: Update versions in README.md to match their defaults values
        language: python
        additional_dependencies:
          - ansible-core>=2.16.4
        entry: scripts/render_readme_version.yml
        pass_filenames: false

  - repo: https://github.com/markdownlint/markdownlint
    rev: v0.12.0
    hooks:
      - id: markdownlint
        exclude: "^.github|(^docs/_sidebar\\.md$)"
