---

# -----------------------------------------------------------------------
# [NOTE] - Propogate .pre-commit-config.yaml edits to all repositories!
# -----------------------------------------------------------------------
# [NOTE] - Common config file source lives in repo:onf-make
#    - https://gerrit.opencord.org/plugins/gitiles/onf-make/
#        +/refs/heads/master/.pre-commit-config.yaml
# -----------------------------------------------------------------------
# [TODO]
#    - pre-commit yaml config exists individually within repositories.
#    - Generally lint config and benavior is consistent for all repos.
#    - Exclusions and bulk cleanup necessitate per-repo custom configs.
#    - Dynamically generate this config file from common and custom
# -----------------------------------------------------------------------

# -----------------------------------------------------------------------
# Copyright 2024 Open Networking Foundation Contributors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# -----------------------------------------------------------------------
# SPDX-FileCopyrightText: 2024 Open Networking Foundation Contributors
# SPDX-License-Identifier: Apache-2.0
# -----------------------------------------------------------------------
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
# -----------------------------------------------------------------------
# .pre-commit-config-yaml 2024-04-19 v0.4
# -----------------------------------------------------------------------

# ci:
#  autofix_commit_msg: "Chore: pre-commit autoupdate"
##  skip: [sync]
#  skip:
#    # pre-commit.ci does not have actionlint installed
#    - actionlint
#
# exclude: '^docs/conf.py'

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
#    rev: c4a0b883114b00d8d76b479c820ce7950211c99b  # frozen: v4.5.0
    rev: v4.5.0
    hooks:
      - id: trailing-whitespace
      - id: check-added-large-files
      - id: check-ast
      - id: check-json
      - id: check-merge-conflict
      - id: check-xml
      - id: check-yaml
#      - id: debug-statements
      - id: end-of-file-fixer
      - id: fix-encoding-pragma
#     - id: double-quote-string-fixer
      - id: requirements-txt-fixer
      - id: mixed-line-ending
        args: ['--fix=lf']

  - repo: https://github.com/jorisroovers/gitlint
    rev: acc9d9de6369b76d22cb4167029d2035e8730b98  # frozen: v0.19.1
    hooks:
      - id: gitlint

  - repo: https://github.com/koalaman/shellcheck-precommit
    rev: v0.10.0
    hooks:
      - id: shellcheck

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

## -----------------------------------------------------------------------
## [SOURCE] Documentation
## -----------------------------------------------------------------------
  - repo: https://github.com/rstcheck/rstcheck
    rev: v6.2.1
    hooks:
      - id: rstcheck

  - repo: https://github.com/markdownlint/markdownlint
    rev: v0.13.0
    hooks:
      - id: markdownlint
#      - id: markdownlint_docker

## -----------------------------------------------------------------------
## [SOURCE] Docker
## -----------------------------------------------------------------------
  - repo: https://github.com/hadolint/hadolint
    rev: v2.12.0
    hooks:
      - id: hadolint
#      - id: hadolint-docker

## -----------------------------------------------------------------------
## [SOURCE] Golang
## -----------------------------------------------------------------------
  - repo: https://github.com/golangci/golangci-lint
    rev: v1.41.1
    hooks:
      - id: golangci-lint

## -----------------------------------------------------------------------
## [SOURCE] REUSE License Checking
## -----------------------------------------------------------------------
#  - repo: https://github.com/fsfe/reuse-tool
#    rev: v3.0.2
#    hooks:
#      - id: reuse
#     - id: add-license-headers
#
# - repo: https://github.com/ansys/pre-commit-hooks
#   rev: v0.2.9
#   hooks:
#     - id: add-license-headers
#   args:
# - --custom_copyright=custom copyright phrase
# - --custom_template=template_name
# - --custom_license=license_name
# - --ignore_license_check
# - --start_year=2023

## -----------------------------------------------------------------------
## [SOURCE] Python
## -----------------------------------------------------------------------
  - repo: https://github.com/psf/black
    rev: 22.10.0
    hooks:
      - id: black

  - repo: https://github.com/PyCQA/doc8
    rev: v1.1.1
    hooks:
      - id: doc8

## -----------------------------------------------------------------------
## [SOURCE] Testing
## -----------------------------------------------------------------------
  - repo: https://github.com/MarketSquare/robotframework-tidy
    rev: 4.11.0
    hooks:
      - id: robotidy

# -------------------------------------------------------------------
# https://docs.python.org/3/library/re.html#regular-expression-syntax
# -------------------------------------------------------------------
exclude: |
    (?x)^(
        ^makefiles/.*       |
        ^lf/.*              |
        ^.venv/.*           |
        ^test/.*            |
        ^\[END-OF-EXCLUDE\]
    )$

# [SEE ALSO]
# -----------------------------------------------------------------------
# https://github.com/memfault/interrupt/blob/master/example/pre-commit/.pre-commit-config.yaml
# https://pre-commit.com/hooks.html
# https://github.com/floatingpurr/sync_with_poetry/blob/main/.pre-commit-config.yaml
# https://github.com/the-common/pre-commit-config-template/blob/master/.pre-commit-config.yaml
# https://github.com/memfault/interrupt/blob/master/example/pre-commit/.pre-commit-config.yaml
# -----------------------------------------------------------------------
# https://www.hatica.io/blog/pre-commit-git-hooks/
# -----------------------------------------------------------------------

# [EOF]
