default_stages: [commit, push]
minimum_pre_commit_version: "1.20.0"
exclude: (^vendor/|^pkg/generated/)
repos:
  - repo: https://github.com/dnephin/pre-commit-golang
    rev: v0.3.5
    hooks:
      - id: go-fmt
        name: Run go fmt against the code
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v3.4.0
    hooks:
      - id: trailing-whitespace
      - id: detect-private-key
      - id: end-of-file-fixer
      - id: check-merge-conflict
      - id: mixed-line-ending
  - repo: https://github.com/thlorenz/doctoc.git
    rev: v2.0.0
    hooks:
      - id: doctoc
        name: Add TOC for md files
        files: ^README\.md$|^CONTRIBUTING\.md$
        args:
          - "--maxlevel"
          - "3"
  - repo: local
    hooks:
    - id: language-matters
      language: pygrep
      name: Check for language that we do not accept as community
      description: Please use "deny_list" or "allow_list"  instead.
      entry: "(?i)(black|white)[_-]?(list|List)"
      pass_filenames: true
    - id: sort-scalers
      name: Check if scalers are sorted in scale_handler.go
      language: system
      entry: "bash tools/sort_scalers.sh"
      files: .*scale_handler\.go$
    - id: golangci-lint
      language: golang
      name: Run golangci against the code
      entry: golangci-lint run
      types: [go]
      pass_filenames: false
