| # 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: python3 |
| minimum_pre_commit_version: "3.2.0" |
| repos: |
| - repo: meta |
| hooks: |
| - id: identity |
| - id: check-hooks-apply |
| - repo: https://github.com/thlorenz/doctoc.git |
| rev: v2.2.0 |
| hooks: |
| - id: doctoc |
| name: Add TOC for Markdown files |
| files: ^CONTRIBUTING\.md$|^INSTALL\.md$|^README\.md$ |
| - repo: https://github.com/oxipng/oxipng |
| rev: v9.1.5 |
| hooks: |
| - id: oxipng |
| name: run oxipng |
| description: optimize PNG images with lossless compression |
| args: ['-o', '4', '--strip', 'safe', '--alpha'] |
| - repo: https://github.com/gitleaks/gitleaks |
| rev: v8.27.2 |
| hooks: |
| - id: gitleaks |
| name: run gitleaks |
| description: detect hardcoded secrets |
| - repo: https://github.com/Lucas-C/pre-commit-hooks |
| rev: v1.5.5 |
| hooks: |
| - id: chmod |
| name: set file permissions |
| args: ['644'] |
| files: \.md$ |
| stages: [manual] |
| - id: insert-license |
| name: add license for all Markdown files |
| files: \.md$ |
| args: |
| - --comment-style |
| - '<!--|| -->' |
| - --license-filepath |
| - .github/workflows/license-templates/LICENSE.txt |
| - --fuzzy-match-generates-todo |
| exclude: ^(CHANGES|ISSUE_TEMPLATE|PULL_REQUEST_TEMPLATE)\.md$|^ui/docs/(full|smoke)-test-plan\.template\.md$ |
| - id: insert-license |
| name: add license for all Shell files |
| description: automatically adds a licence header to all Shell files that don't have a license header |
| files: \.sh$ |
| args: |
| - --comment-style |
| - '|#|' |
| - --license-filepath |
| - .github/workflows/license-templates/LICENSE.txt |
| - --fuzzy-match-generates-todo |
| - id: insert-license |
| name: add license for all SQL files |
| files: \.sql$ |
| args: |
| - --comment-style |
| - '|--|' |
| - --license-filepath |
| - .github/workflows/license-templates/LICENSE.txt |
| - --fuzzy-match-generates-todo |
| - id: insert-license |
| name: add license for all Vue files |
| files: \.vue$ |
| args: |
| - --comment-style |
| - '|//|' |
| - --license-filepath |
| - .github/workflows/license-templates/LICENSE.txt |
| - --fuzzy-match-generates-todo |
| - id: insert-license |
| name: add license for all YAML files |
| description: automatically adds a licence header to all YAML files that don't have a license header |
| files: \.ya?ml$ |
| args: |
| - --comment-style |
| - '|#|' |
| - --license-filepath |
| - .github/workflows/license-templates/LICENSE.txt |
| - --fuzzy-match-generates-todo |
| - repo: https://github.com/pre-commit/pre-commit-hooks |
| rev: v6.0.0 |
| hooks: |
| #- id: check-added-large-files |
| - id: check-case-conflict |
| #- id: check-executables-have-shebangs |
| - id: check-illegal-windows-names |
| - id: check-merge-conflict |
| - id: check-shebang-scripts-are-executable |
| files: \.sh$ |
| - id: check-symlinks |
| - id: check-vcs-permalinks |
| #- id: check-yaml |
| - id: destroyed-symlinks |
| - id: detect-aws-credentials |
| args: [--allow-missing-credentials] |
| - id: detect-private-key |
| exclude: > |
| (?x) |
| ^scripts/vm/systemvm/id_rsa\.cloud$| |
| ^server/src/test/java/org/apache/cloudstack/network/ssl/CertServiceTest\.java$| |
| ^server/src/test/java/com/cloud/keystore/KeystoreTest\.java$| |
| ^server/src/test/resources/certs/dsa_self_signed\.key$| |
| ^server/src/test/resources/certs/non_root\.key$| |
| ^server/src/test/resources/certs/root_chain\.key$| |
| ^server/src/test/resources/certs/rsa_ca_signed\.key$| |
| ^server/src/test/resources/certs/rsa_self_signed_with_pwd\.key$| |
| ^server/src/test/resources/certs/rsa_self_signed\.key$| |
| ^services/console-proxy/rdpconsole/src/test/doc/rdp-key\.pem$| |
| ^systemvm/agent/certs/localhost\.key$| |
| ^systemvm/agent/certs/realhostip\.key$| |
| ^test/integration/smoke/test_ssl_offloading\.py$ |
| - id: end-of-file-fixer |
| exclude: \.vhd$|\.svg$ |
| - id: file-contents-sorter |
| args: [--unique] |
| files: ^\.github/linters/codespell\.txt$ |
| - id: fix-byte-order-marker |
| - id: forbid-submodules |
| - id: mixed-line-ending |
| - id: trailing-whitespace |
| files: ^(LICENSE|NOTICE)$|\.(bat|cfg|cs|css|gitignore|header|in|install|java|md|properties|py|rb|rc|sh|sql|te|template|txt|ucls|vue|xml|xsl|yaml|yml)$|^cloud-cli/bindir/cloud-tool$|^debian/changelog$ |
| args: [--markdown-linebreak-ext=md] |
| exclude: ^services/console-proxy/rdpconsole/src/test/doc/freerdp-debug-log\.txt$ |
| - repo: https://github.com/codespell-project/codespell |
| rev: v2.4.1 |
| hooks: |
| - id: codespell |
| name: run codespell |
| description: Check spelling with codespell |
| args: [--ignore-words=.github/linters/codespell.txt] |
| exclude: ^systemvm/agent/noVNC/|^ui/package\.json$|^ui/package-lock\.json$|^ui/public/js/less\.min\.js$|^ui/public/locales/.*[^n].*\.json$|^server/src/test/java/org/apache/cloudstack/network/ssl/CertServiceTest.java$|^test/integration/smoke/test_ssl_offloading.py$ |
| - repo: https://github.com/pycqa/flake8 |
| rev: 7.0.0 |
| hooks: |
| - id: flake8 |
| args: [--config, .github/linters/.flake8] |
| - repo: https://github.com/igorshubovych/markdownlint-cli |
| rev: v0.45.0 |
| hooks: |
| - id: markdownlint |
| name: run markdownlint |
| description: check Markdown files with markdownlint |
| args: [--config=.github/linters/.markdown-lint.yml] |
| types: [markdown] |
| files: \.(md|mdown|markdown)$ |
| - repo: https://github.com/adrienverge/yamllint |
| rev: v1.37.1 |
| hooks: |
| - id: yamllint |
| name: run yamllint |
| description: check YAML files with yamllint |
| args: [--config-file=.github/linters/.yamllint.yml] |
| types: [yaml] |
| files: \.ya?ml$ |
| exclude: ^.*k8s-.*\.ya?ml$ |