# Copyright (C) 2024 Intel Corporation
# SPDX-License-Identifier: Apache-2.0

ci:
  autofix_prs: true
  autoupdate_schedule: quarterly

repos:
  - repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v5.0.0
    hooks:
      - id: end-of-file-fixer
        files: (.*\.(py|md|rst|yaml|yml|json|ts|js|html|svelte|sh))$
      - id: check-json
      - id: check-yaml
        args: [--allow-multiple-documents]
      - id: debug-statements
      - id: mixed-line-ending
        args: [--fix=lf]
      - id: requirements-txt-fixer
      - id: trailing-whitespace
        files: (.*\.(py|rst|cmake|yaml|yml|json|ts|js|html|svelte|sh))$

  - repo: https://github.com/Lucas-C/pre-commit-hooks
    rev: v1.5.5
    hooks:
      - id: insert-license
        files: (Dockerfile)$
        args:
          [
            --license-filepath=.github/license_template.txt,
            --use-current-year,
            --detect-license-in-X-top-lines=5,
            --skip-license-insertion-comment=Copyright,
          ]
      - id: insert-license
        files: (.*\.(py|yaml|yml|sh))$
        args:
          [
            --license-filepath=.github/license_template.txt,
            --use-current-year,
            --detect-license-in-X-top-lines=5,
            --skip-license-insertion-comment=Copyright,
          ]
      - id: insert-license
        files: (.*\.(ts|js))$
        args:
          [
            --license-filepath=.github/license_template.txt,
            --use-current-year,
            --detect-license-in-X-top-lines=5,
            --skip-license-insertion-comment=Copyright,
            --comment-style=//,
          ]
      - id: insert-license
        files: (.*\.(html|svelte))$
        args:
          [
            --license-filepath=.github/license_template.txt,
            --use-current-year,
            --detect-license-in-X-top-lines=5,
            --skip-license-insertion-comment=Copyright,
            --comment-style=<!--| |-->,
          ]

  - repo: https://github.com/asottile/yesqa
    rev: v1.5.0
    hooks:
      - id: yesqa
        name: Unused noqa

  - repo: https://github.com/pycqa/isort
    rev: 5.13.2
    hooks:
      - id: isort

  - repo: https://github.com/PyCQA/docformatter
    rev: 06907d0
    hooks:
      - id: docformatter
        args: [
            --in-place,
            --wrap-summaries=0, # 0 means disable wrap
            --wrap-descriptions=0, # 0 means disable wrap
            --black,
            --style=google,
          ]

  - repo: local
    hooks:
      - id: prettier
        name: prettier
        description: ""
        entry: prettier --write --ignore-unknown
        language: node
        "types": [text]
        args: [--print-width=120]
        types_or: [markdown, html, css, scss, javascript, json, ts, shell, sh]
        require_serial: false
        additional_dependencies: ["prettier@latest"]
        minimum_pre_commit_version: "0"

  - repo: https://github.com/psf/black.git
    rev: 24.10.0
    hooks:
      - id: black
        files: (.*\.py)$

  - repo: https://github.com/asottile/blacken-docs
    rev: 1.19.1
    hooks:
      - id: blacken-docs
        args: [--line-length=120, --skip-errors]
        additional_dependencies:
          - black==24.10.0

  - repo: https://github.com/codespell-project/codespell
    rev: v2.3.0
    hooks:
      - id: codespell
        args: [-w]
        additional_dependencies:
          - tomli

  - repo: https://github.com/astral-sh/ruff-pre-commit
    rev: v0.8.6
    hooks:
      - id: ruff
        args: [--fix, --exit-non-zero-on-fix, --no-cache]
