repos:

  # pre-commit hooks
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: "v5.0.0"
    hooks:
      - id: no-commit-to-branch
        args: ['--branch', 'main']
      - id: check-merge-conflict
      - id: check-added-large-files
      - id: check-yaml
      - id: check-xml
      - id: check-json
      - id: pretty-format-json
        args: ['--no-sort-keys', '--autofix', '--indent=4']
      - id: end-of-file-fixer
        exclude: \.json$
        files: \.java$|\.xml$
      - id: trailing-whitespace
      - id: mixed-line-ending

  # for commit message formatting
  - repo: https://github.com/commitizen-tools/commitizen
    rev: v4.4.1
    hooks:
      - id: commitizen
        stages: [commit-msg]

#  # for java code quality
#  - repo: https://github.com/gherynos/pre-commit-java
#    rev: v0.6.10
#    hooks:
#      - id: pmd
#        exclude: /test/
#      - id: cpd
#        exclude: /test/
#      - id: checkstyle
#        exclude: /test/