| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you 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. |
| --- |
| default_stages: [pre-commit, pre-push] |
| default_language_version: |
| # force all unspecified python hooks to run python3 |
| python: python310 |
| node: "22.13.0" |
| exclude: ^(docs-archive|landing-pages/site/static/external|landing-pages/site/layouts/partials/scripts.html|landing-pages/site/assets/scss/_variables.scss) |
| minimum_prek_version: '0.2.13' |
| repos: |
| - repo: meta |
| hooks: |
| - id: check-hooks-apply |
| - id: check-useless-excludes |
| - repo: https://github.com/eclipse-csi/octopin |
| # We need this commit because if supports two spaces before comments (yamllint compatibility) |
| rev: 67eac129b3e1d8ddb47e657bb2fda28c33d948ca # frozen: v0.1.4 |
| hooks: |
| - id: pin-versions |
| name: Pin versions of dependencies in CI workflows (manual) |
| stages: ['manual'] |
| language: python |
| language_version: python311 |
| - repo: https://github.com/woodruffw/zizmor-pre-commit |
| rev: b546b77c44c466a54a42af5499dcc0dcc1a3193f # frozen: v1.22.0 |
| hooks: |
| - id: zizmor |
| name: Run zizmor to check for github workflow syntax errors |
| types: [yaml] |
| files: ^\.github/workflows/.*$|^\.github/actions/.*$ |
| require_serial: true |
| entry: zizmor |
| - repo: https://github.com/Lucas-C/pre-commit-hooks |
| rev: ad1b27d73581aa16cca06fc4a0761fc563ffe8e8 # frozen: v1.5.6 |
| hooks: |
| - id: forbid-tabs |
| exclude: ^\.gitmodules$ |
| - id: insert-license |
| name: Add licence for all other files |
| args: |
| - --comment-style |
| - "|#|" |
| - --license-filepath |
| - license-templates/LICENSE.txt |
| - --fuzzy-match-generates-todo |
| files: ^\.gitmodules$|^\.gitignore$|^\.gitignore$|^Dockerfile.*$ |
| - id: insert-license |
| name: Add licence for all JS/CSS/SCSS files |
| files: \.js$|\.s?css$ |
| args: |
| - --comment-style |
| - "/**| *| */" |
| - --license-filepath |
| - license-templates/LICENSE.txt |
| - --fuzzy-match-generates-todo |
| - id: insert-license |
| name: Add licence for all shell files |
| types: [shell] |
| files: ^breeze$|^breeze-complete$|\.sh$ |
| args: |
| - --comment-style |
| - "|#|" |
| - --license-filepath |
| - license-templates/LICENSE.txt |
| - --fuzzy-match-generates-todo |
| - id: insert-license |
| name: Add licence for all yaml files |
| types: [yaml] |
| args: |
| - --comment-style |
| - "|#|" |
| - --license-filepath |
| - license-templates/LICENSE.txt |
| - --fuzzy-match-generates-todo |
| - id: insert-license |
| name: Add licence for all TOML files |
| types: [toml] |
| exclude: \.lock$ |
| args: |
| - --comment-style |
| - "|#|" |
| - --license-filepath |
| - license-templates/LICENSE.txt |
| - --fuzzy-match-generates-todo |
| - id: insert-license |
| name: Add licence for all HTML files |
| types: [text] |
| args: |
| - --comment-style |
| - "{{/*||*/}}" |
| - --license-filepath |
| - license-templates/LICENSE.txt |
| - --fuzzy-match-generates-todo |
| files: ^landing-pages/site/layouts/.+\.html$ |
| - id: insert-license |
| name: Add licence for all Python files |
| types: [python] |
| args: |
| - --comment-style |
| - "|#|" |
| - --license-filepath |
| - license-templates/LICENSE.txt |
| - --fuzzy-match-generates-todo |
| - id: insert-license |
| name: Add license for all rst files |
| args: |
| - --comment-style |
| - "||" |
| - --license-filepath |
| - license-templates/LICENSE.rst |
| - --fuzzy-match-generates-todo |
| files: \.rst$ |
| - id: insert-license |
| name: Add license for all JINJA template files |
| files: ^sphinx_airflow_theme/.*\.html$ |
| args: |
| - --comment-style |
| - "{#||#}" |
| - --license-filepath |
| - license-templates/LICENSE.txt |
| - --fuzzy-match-generates-todo |
| - repo: local |
| hooks: |
| - id: shellcheck |
| name: Check Shell scripts syntax correctness |
| language: docker_image |
| entry: koalaman/shellcheck:stable -x -a |
| types: [shell] |
| files: ^breeze$|^breeze-complete$|\.sh$|^hooks/build$|^hooks/push$ |
| - id: lint-dockerfile |
| name: Lint Dockerfile |
| language: system |
| entry: bash -c "docker run --rm hadolint/hadolint:latest <Dockerfile" |
| - repo: https://github.com/pre-commit/pre-commit-hooks |
| rev: 3e8a8703264a2f4a69428a0aa4dcb512790b2c8c # frozen: v6.0.0 |
| hooks: |
| - id: check-executables-have-shebangs |
| - id: check-json |
| - id: check-merge-conflict |
| - id: check-toml |
| - id: check-yaml |
| - id: detect-private-key |
| - id: end-of-file-fixer |
| exclude: ^landing-pages/site/static/k8s-schemas/ |
| - id: pretty-format-json |
| args: |
| - --indent=2 |
| - --autofix |
| - --top-keys=name,version,description,repository,main,author,license,scripts |
| exclude: ^landing-pages/site/static/k8s-schemas/ |
| - id: mixed-line-ending |
| - id: trailing-whitespace |
| args: [--markdown-linebreak-ext=md] |
| - repo: https://github.com/thlorenz/doctoc.git |
| rev: 68f070c98b9a053eabfa7f8899d1f42b9919f98c # frozen: v2.2.0 |
| hooks: |
| - id: doctoc |
| name: Add TOC for Markdown files |
| files: > |
| (?x) |
| ^sphinx_airflow_theme/README\.md$| |
| ^CONTRIBUTE\.md$ |
| args: |
| - "--maxlevel" |
| - "2" |