| # 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/gitleaks/gitleaks | 
 |     rev: v8.27.2 | 
 |     hooks: | 
 |       - id: gitleaks | 
 |         name: run gitleaks | 
 |         description: detect hardcoded secrets | 
 |   - repo: https://github.com/pre-commit/pre-commit-hooks | 
 |     rev: v5.0.0 | 
 |     hooks: | 
 |       #- id: check-added-large-files | 
 |       - id: check-case-conflict | 
 |       #- id: check-executables-have-shebangs | 
 |       - 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$ | 
 |       - id: fix-byte-order-marker | 
 |       - id: forbid-submodules | 
 |       - id: mixed-line-ending | 
 |         exclude: \.cs$ | 
 |       - id: trailing-whitespace | 
 |         files: \.(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.2.6 | 
 |     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$ |