diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 15b787c5..e6db96e1 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -29,8 +29,5 @@ "type": "bind" } ], - "runArgs": [ - "--env-file", - ".devcontainer/devcontainer.env" - ] + "runArgs": ["--env-file", ".devcontainer/devcontainer.env"] } diff --git a/.editorconfig b/.editorconfig index 06c94e90..2ca20965 100644 --- a/.editorconfig +++ b/.editorconfig @@ -33,3 +33,9 @@ indent_size = 4 # Disable the filename rule because our test case logic requires that files used in test cases # follow a certain syntax which is not compatible with what ktlint currently mandates (PascalCase) disabled_rules = filename + +[*.md] + +# Indentation in Markdown files might not be constant, or a multiple of 2. +# Prettier takes care of formatting Markdown files. +indent_size = unset diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 3ac9890f..be96e7ac 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -59,7 +59,7 @@ body: description: | Super-Linter version where you observed this issue placeholder: | - vX.Y.Z + vX.Y.Z render: markdown validations: required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 5d7a27e7..bd9dfe4e 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,3 +1,2 @@ --- blank_issues_enabled: false -... diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 4526443d..76ceb749 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -16,8 +16,8 @@ body: label: Is there an existing issue for this? description: Search to see if an issue already exists for the bug you encountered. options: - - label: I have searched the existing issues - required: true + - label: I have searched the existing issues + required: true - type: textarea attributes: label: Current Behavior @@ -37,5 +37,3 @@ body: Links? References? Anything that will give us more context about the issue you are encountering. validations: required: false - ---- diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 966b54b2..a51fcd4b 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,7 +4,6 @@ ################################# version: 2 updates: - - package-ecosystem: "devcontainers" commit-message: prefix: "chore(devcontainer)" diff --git a/.github/linters/.checkov-test-linters-failure.yaml b/.github/linters/.checkov-test-linters-failure.yaml index 7a026d20..9ea75e8b 100644 --- a/.github/linters/.checkov-test-linters-failure.yaml +++ b/.github/linters/.checkov-test-linters-failure.yaml @@ -5,5 +5,3 @@ directory: - test/linters/checkov/bad quiet: false - -... diff --git a/.github/linters/.checkov-test-linters-success.yaml b/.github/linters/.checkov-test-linters-success.yaml index 926a015f..557641c3 100644 --- a/.github/linters/.checkov-test-linters-success.yaml +++ b/.github/linters/.checkov-test-linters-success.yaml @@ -19,4 +19,3 @@ skip-framework: # we have to do that as part of the test Helm chart or the test Kustomize # "package". - kubernetes -... diff --git a/.github/linters/.checkov.yaml b/.github/linters/.checkov.yaml index 5e107ccc..80bd0356 100644 --- a/.github/linters/.checkov.yaml +++ b/.github/linters/.checkov.yaml @@ -28,4 +28,3 @@ skip-path: - test/linters/terraform_fmt - test/linters/terraform_tflint - test/linters/terraform_terrascan -... diff --git a/.github/linters/.eslintrc.yml b/.github/linters/.eslintrc.yml index 31282eb8..72904817 100644 --- a/.github/linters/.eslintrc.yml +++ b/.github/linters/.eslintrc.yml @@ -12,10 +12,10 @@ ignorePatterns: - "!.*" - "**/node_modules/.*" -parser: '@typescript-eslint/parser' +parser: "@typescript-eslint/parser" plugins: - - '@typescript-eslint' + - "@typescript-eslint" # Don't set the jsonSyntax parser option for JSON, JSON5, and JSONC # so we can use eslint-plugin-jsonc to automatically fix issues @@ -41,4 +41,3 @@ overrides: - "*.tsx" extends: - plugin:react/recommended -... diff --git a/.github/linters/.golangci.yml b/.github/linters/.golangci.yml index 3843b1cb..4aed5f05 100644 --- a/.github/linters/.golangci.yml +++ b/.github/linters/.golangci.yml @@ -4,4 +4,3 @@ linters: enable: - gofmt -... diff --git a/.github/linters/.hadolint.yaml b/.github/linters/.hadolint.yaml index 281b5f4e..f36d168a 100644 --- a/.github/linters/.hadolint.yaml +++ b/.github/linters/.hadolint.yaml @@ -3,11 +3,11 @@ ## Hadolint config file ## ########################## ignored: - - DL4001 # Ignore wget and curl in same file - - DL4006 # ignore pipefail as we don't want to add layers - - DL3018 # We do pin version in pipfile.lock - - DL3013 # We do pin version in pipfile.lock - - DL3003 # Ignore workdir so we don't add layers - - SC2016 # ignore as its interpreted later - - DL3044 # Ignore using env in env - - DL3008 # Ignore pinned versions check for APT + - DL4001 # Ignore wget and curl in same file + - DL4006 # ignore pipefail as we don't want to add layers + - DL3018 # We do pin version in pipfile.lock + - DL3013 # We do pin version in pipfile.lock + - DL3003 # Ignore workdir so we don't add layers + - SC2016 # ignore as its interpreted later + - DL3044 # Ignore using env in env + - DL3008 # Ignore pinned versions check for APT diff --git a/.github/linters/.jscpd-test-linters.json b/.github/linters/.jscpd-test-linters.json index c5ac724b..10d3a104 100644 --- a/.github/linters/.jscpd-test-linters.json +++ b/.github/linters/.jscpd-test-linters.json @@ -1,10 +1,6 @@ { "absolute": true, - "ignore": [ - "**/node_modules/**" - ], - "reporters": [ - "consoleFull" - ], + "ignore": ["**/node_modules/**"], + "reporters": ["consoleFull"], "threshold": 0 } diff --git a/.github/linters/.jscpd.json b/.github/linters/.jscpd.json index be12186d..773a4804 100644 --- a/.github/linters/.jscpd.json +++ b/.github/linters/.jscpd.json @@ -43,8 +43,6 @@ "**/workflows/cd.yml", "**/workflows/ci.yml" ], - "reporters": [ - "consoleFull" - ], + "reporters": ["consoleFull"], "threshold": 0 } diff --git a/.github/linters/.markdown-lint.yml b/.github/linters/.markdown-lint.yml index f2dec62f..fc3cfdaa 100644 --- a/.github/linters/.markdown-lint.yml +++ b/.github/linters/.markdown-lint.yml @@ -18,18 +18,18 @@ ############### # Rules by id # ############### -MD004: false # Unordered list style +MD004: false # Unordered list style MD007: - indent: 2 # Unordered list indentation + indent: 2 # Unordered list indentation MD013: - line_length: 808 # Line length + line_length: 808 # Line length MD026: - punctuation: ".,;:!。,;:" # List of not allowed -MD029: false # Ordered list item prefix -MD033: false # Allow inline HTML -MD036: false # Emphasis used instead of a heading + punctuation: ".,;:!。,;:" # List of not allowed +MD029: false # Ordered list item prefix +MD033: false # Allow inline HTML +MD036: false # Emphasis used instead of a heading ################# # Rules by tags # ################# -blank_lines: false # Error on blank lines +blank_lines: false # Error on blank lines diff --git a/.github/linters/tsconfig.json b/.github/linters/tsconfig.json index d2536856..38444363 100644 --- a/.github/linters/tsconfig.json +++ b/.github/linters/tsconfig.json @@ -2,20 +2,11 @@ "compilerOptions": { "strictNullChecks": true }, - "include": [ - "src", - "tests", - "tools", - "/tmp/lint/test/linters" - ], + "include": ["src", "tests", "tools", "/tmp/lint/test/linters"], "overrides": [ { - "extends": [ - "plugin:@typescript-eslint/disable-type-checked" - ], - "files": [ - "./**/*.{ts,tsx}" - ] + "extends": ["plugin:@typescript-eslint/disable-type-checked"], + "files": ["./**/*.{ts,tsx}"] } ] } diff --git a/.github/pull_request-template.md b/.github/pull_request-template.md index 4ce89526..72b972cf 100644 --- a/.github/pull_request-template.md +++ b/.github/pull_request-template.md @@ -1,7 +1,13 @@ + + + + + ## Readiness checklist + In order to have this pull request merged, complete the following tasks. @@ -14,11 +20,11 @@ In order to have this pull request merged, complete the following tasks. - [ ] I followed the [Conventional Commit v1.0.0 spec](https://www.conventionalcommits.org/en/v1.0.0/). - [ ] I wrote the necessary upgrade instructions in the [upgrade guide](../docs/upgrade-guide.md). - [ ] If this pull request is about and existing issue, - I added the `Fix #ISSUE_NUMBER` or `Close #ISSUE_NUMBER` text to the description of the pull request. + I added the `Fix #ISSUE_NUMBER` or `Close #ISSUE_NUMBER` text to the description of the pull request. ### Super-linter maintainer tasks - [ ] Label as `breaking` if this change breaks compatibility with the previous released version. - [ ] Label as either: `automation`, `bug`, `documentation`, `enhancement`, `infrastructure`. - [ ] Add the pull request to a milestone, eventually creating one, that matches - with the version that release-please proposes in the `preview-release-notes` CI job. + with the version that release-please proposes in the `preview-release-notes` CI job. diff --git a/.github/release-please/release-please-config.json b/.github/release-please/release-please-config.json index 011fb4d1..04eb150f 100644 --- a/.github/release-please/release-please-config.json +++ b/.github/release-please/release-please-config.json @@ -34,11 +34,7 @@ ".": { "changelog-path": "CHANGELOG.md", "release-type": "simple", - "extra-files": [ - "action.yml", - "README.md", - "slim/action.yml" - ] + "extra-files": ["action.yml", "README.md", "slim/action.yml"] } } } diff --git a/.github/workflows/dependabot-automation.yaml b/.github/workflows/dependabot-automation.yaml index f53b0978..821d8ebf 100644 --- a/.github/workflows/dependabot-automation.yaml +++ b/.github/workflows/dependabot-automation.yaml @@ -1,7 +1,7 @@ --- name: Dependabot automation -on: # yamllint disable-line rule:truthy +on: # yamllint disable-line rule:truthy pull_request: types: - opened @@ -27,4 +27,3 @@ jobs: # This doesn't trigger an automated merge because we require at approvals - name: Enable auto-merge run: gh pr merge --auto --squash --delete-branch "${PR_URL}" -... diff --git a/.github/workflows/lint-commit.yaml b/.github/workflows/lint-commit.yaml index 556e1887..7c914a23 100644 --- a/.github/workflows/lint-commit.yaml +++ b/.github/workflows/lint-commit.yaml @@ -13,7 +13,7 @@ jobs: commitlint: runs-on: ubuntu-latest permissions: - contents: read + contents: read steps: - uses: actions/checkout@v4 with: @@ -72,4 +72,3 @@ jobs: - name: Validate commits run: | make lint-commits -... diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index a0c083f8..e7b29c50 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -14,8 +14,8 @@ permissions: {} jobs: markstale: permissions: - issues: write # for actions/stale to close stale issues - pull-requests: write # for actions/stale to close stale PRs + issues: write # for actions/stale to close stale issues + pull-requests: write # for actions/stale to close stale PRs runs-on: ubuntu-latest # only run on schedule if: ${{ github.event_name == 'schedule' }} @@ -36,8 +36,8 @@ jobs: marknotstale: permissions: - issues: write # for actions/stale to close stale issues - pull-requests: write # for actions/stale to close stale PRs + issues: write # for actions/stale to close stale issues + pull-requests: write # for actions/stale to close stale PRs runs-on: ubuntu-latest # do not run on schedule if: "${{ github.event_name == 'issue_comment' && contains(github.event.issue.labels.*.name, 'O: stale 🤖') && github.event.issue.user.type != 'Bot' }}" diff --git a/.github/workflows/thank_contributors.yaml b/.github/workflows/thank_contributors.yaml index eb0170d7..5857e8a4 100644 --- a/.github/workflows/thank_contributors.yaml +++ b/.github/workflows/thank_contributors.yaml @@ -2,7 +2,7 @@ name: Monthly contributor report on: workflow_dispatch: schedule: - - cron: '3 2 1 * *' + - cron: "3 2 1 * *" permissions: issues: write @@ -13,31 +13,30 @@ jobs: runs-on: ubuntu-latest steps: + - name: Get dates for last month + shell: bash + run: | + # Calculate the first day of the previous month + start_date=$(date -d "last month" +%Y-%m-01) - - name: Get dates for last month - shell: bash - run: | - # Calculate the first day of the previous month - start_date=$(date -d "last month" +%Y-%m-01) + # Calculate the last day of the previous month + end_date=$(date -d "$start_date +1 month -1 day" +%Y-%m-%d) - # Calculate the last day of the previous month - end_date=$(date -d "$start_date +1 month -1 day" +%Y-%m-%d) + #Set an environment variable with the date range + echo "START_DATE=$start_date" >> "$GITHUB_ENV" + echo "END_DATE=$end_date" >> "$GITHUB_ENV" - #Set an environment variable with the date range - echo "START_DATE=$start_date" >> "$GITHUB_ENV" - echo "END_DATE=$end_date" >> "$GITHUB_ENV" + - name: Run contributor action + uses: github/contributors@v1 + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + START_DATE: ${{ env.START_DATE }} + END_DATE: ${{ env.END_DATE }} + REPOSITORY: super-linter/super-linter - - name: Run contributor action - uses: github/contributors@v1 - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - START_DATE: ${{ env.START_DATE }} - END_DATE: ${{ env.END_DATE }} - REPOSITORY: super-linter/super-linter - - - name: Create issue - uses: peter-evans/create-issue-from-file@v5 - with: - title: Thank you super-linter contributors (${{ env.START_DATE }}..${{ env.END_DATE }}) - token: ${{ secrets.GITHUB_TOKEN }} - content-filepath: ./contributors.md + - name: Create issue + uses: peter-evans/create-issue-from-file@v5 + with: + title: Thank you super-linter contributors (${{ env.START_DATE }}..${{ env.END_DATE }}) + token: ${{ secrets.GITHUB_TOKEN }} + content-filepath: ./contributors.md diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..c814fec8 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,4 @@ +# Don't format Markdown files to verify tests +# because we don't yet generate formatted Markdown +# tables when creating the summary file +test/data/super-linter-summary/markdown/table/**/*.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 5cf3ede1..5c633b21 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -14,22 +14,22 @@ appearance, race, religion, or sexual identity and orientation. Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery and unwelcome sexual attention or - advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic - address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a - professional setting +- The use of sexualized language or imagery and unwelcome sexual attention or + advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic + address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting ## Our Responsibilities @@ -68,8 +68,11 @@ members of the project's leadership. ## Attribution This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, + + available at [https://www.contributor-covenant.org/version/1/4/code-of-conduct.html](https://www.contributor-covenant.org/version/1/4/code-of-conduct/) + [homepage]: https://www.contributor-covenant.org diff --git a/README.md b/README.md index b691412e..82ef3456 100644 --- a/README.md +++ b/README.md @@ -51,60 +51,60 @@ Here are some notable Super-linter features: Super-linter supports the following tools: -| _Language_ | _Linter_ | -|----------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **Ansible** | [ansible-lint](https://github.com/ansible/ansible-lint) | -| **AWS CloudFormation templates** | [cfn-lint](https://github.com/aws-cloudformation/cfn-python-lint/) | -| **Azure Resource Manager (ARM)** | [arm-ttk](https://github.com/azure/arm-ttk) | -| **C++** | [cpp-lint](https://github.com/cpplint/cpplint) / [clang-format](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) | -| **C#** | [dotnet format](https://github.com/dotnet/format) / [clang-format](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) | -| **CSS** | [stylelint](https://stylelint.io/) | -| **Clojure** | [clj-kondo](https://github.com/borkdude/clj-kondo) | -| **CoffeeScript** | [coffeelint](https://coffeelint.github.io/) | -| **Copy/paste detection** | [jscpd](https://github.com/kucherenko/jscpd) | -| **Dart** | [dartanalyzer](https://dart.dev/guides/language/analysis-options) | -| **Dockerfile** | [hadolint](https://github.com/hadolint/hadolint) | -| **EditorConfig** | [editorconfig-checker](https://github.com/editorconfig-checker/editorconfig-checker) | -| **ENV** | [dotenv-linter](https://github.com/dotenv-linter/dotenv-linter) | -| **Gherkin** | [gherkin-lint](https://github.com/vsiakka/gherkin-lint) | -| **GitHub Actions** | [actionlint](https://github.com/rhysd/actionlint) | -| **Golang** | [golangci-lint](https://github.com/golangci/golangci-lint) | +| _Language_ | _Linter_ | +| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Ansible** | [ansible-lint](https://github.com/ansible/ansible-lint) | +| **AWS CloudFormation templates** | [cfn-lint](https://github.com/aws-cloudformation/cfn-python-lint/) | +| **Azure Resource Manager (ARM)** | [arm-ttk](https://github.com/azure/arm-ttk) | +| **C++** | [cpp-lint](https://github.com/cpplint/cpplint) / [clang-format](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) | +| **C#** | [dotnet format](https://github.com/dotnet/format) / [clang-format](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) | +| **CSS** | [stylelint](https://stylelint.io/) | +| **Clojure** | [clj-kondo](https://github.com/borkdude/clj-kondo) | +| **CoffeeScript** | [coffeelint](https://coffeelint.github.io/) | +| **Copy/paste detection** | [jscpd](https://github.com/kucherenko/jscpd) | +| **Dart** | [dartanalyzer](https://dart.dev/guides/language/analysis-options) | +| **Dockerfile** | [hadolint](https://github.com/hadolint/hadolint) | +| **EditorConfig** | [editorconfig-checker](https://github.com/editorconfig-checker/editorconfig-checker) | +| **ENV** | [dotenv-linter](https://github.com/dotenv-linter/dotenv-linter) | +| **Gherkin** | [gherkin-lint](https://github.com/vsiakka/gherkin-lint) | +| **GitHub Actions** | [actionlint](https://github.com/rhysd/actionlint) | +| **Golang** | [golangci-lint](https://github.com/golangci/golangci-lint) | | **GoReleaser** | [GoReleaser](https://github.com/goreleaser/goreleaser) | -| **Groovy** | [npm-groovy-lint](https://github.com/nvuillam/npm-groovy-lint) | -| **HTML** | [HTMLHint](https://github.com/htmlhint/HTMLHint) | -| **Java** | [checkstyle](https://checkstyle.org) / [google-java-format](https://github.com/google/google-java-format) | -| **JavaScript** | [ESLint](https://eslint.org/) / [standard js](https://standardjs.com/) | -| **JSON** | [eslint-plugin-json](https://www.npmjs.com/package/eslint-plugin-json) | -| **JSONC** | [eslint-plugin-jsonc](https://www.npmjs.com/package/eslint-plugin-jsonc) | -| Infrastructure as code | [Checkov](https://www.checkov.io/) | -| **Kubernetes** | [kubeconform](https://github.com/yannh/kubeconform) | -| **Kotlin** | [ktlint](https://github.com/pinterest/ktlint) | -| **LaTeX** | [ChkTex](https://www.nongnu.org/chktex/) | -| **Lua** | [luacheck](https://github.com/luarocks/luacheck) | -| **Markdown** | [markdownlint](https://github.com/igorshubovych/markdownlint-cli#readme) | -| **Natural language** | [textlint](https://textlint.github.io/) | -| **OpenAPI** | [spectral](https://github.com/stoplightio/spectral) | -| **Perl** | [perlcritic](https://metacpan.org/pod/Perl::Critic) | +| **Groovy** | [npm-groovy-lint](https://github.com/nvuillam/npm-groovy-lint) | +| **HTML** | [HTMLHint](https://github.com/htmlhint/HTMLHint) | +| **Java** | [checkstyle](https://checkstyle.org) / [google-java-format](https://github.com/google/google-java-format) | +| **JavaScript** | [ESLint](https://eslint.org/) / [standard js](https://standardjs.com/) | +| **JSON** | [eslint-plugin-json](https://www.npmjs.com/package/eslint-plugin-json) | +| **JSONC** | [eslint-plugin-jsonc](https://www.npmjs.com/package/eslint-plugin-jsonc) | +| Infrastructure as code | [Checkov](https://www.checkov.io/) | +| **Kubernetes** | [kubeconform](https://github.com/yannh/kubeconform) | +| **Kotlin** | [ktlint](https://github.com/pinterest/ktlint) | +| **LaTeX** | [ChkTex](https://www.nongnu.org/chktex/) | +| **Lua** | [luacheck](https://github.com/luarocks/luacheck) | +| **Markdown** | [markdownlint](https://github.com/igorshubovych/markdownlint-cli#readme) | +| **Natural language** | [textlint](https://textlint.github.io/) | +| **OpenAPI** | [spectral](https://github.com/stoplightio/spectral) | +| **Perl** | [perlcritic](https://metacpan.org/pod/Perl::Critic) | | **PHP** | [PHP built-in linter](https://www.php.net/manual/en/features.commandline.options.php) / [PHP CodeSniffer](https://github.com/PHPCSStandards/PHP_CodeSniffer) / [PHPStan](https://phpstan.org/) / [Psalm](https://psalm.dev/) | -| **PowerShell** | [PSScriptAnalyzer](https://github.com/PowerShell/Psscriptanalyzer) | -| **Protocol Buffers** | [protolint](https://github.com/yoheimuta/protolint) | -| **Python3** | [pylint](https://pylint.pycqa.org/) / [flake8](https://flake8.pycqa.org/en/latest/) / [black](https://github.com/psf/black) / [isort](https://pypi.org/project/isort/) / [ruff](https://github.com/astral-sh/ruff) | -| **R** | [lintr](https://github.com/jimhester/lintr) | -| **Raku** | [Raku](https://raku.org) | -| **Renovate** | [renovate-config-validator](https://docs.renovatebot.com/config-validation/) | -| **Ruby** | [RuboCop](https://github.com/rubocop-hq/rubocop) | -| **Rust** | [Rustfmt](https://github.com/rust-lang/rustfmt) / [Clippy](https://github.com/rust-lang/rust-clippy) | -| **Scala** | [scalafmt](https://github.com/scalameta/scalafmt) | -| **Secrets** | [GitLeaks](https://github.com/zricethezav/gitleaks) | -| **Shell** | [ShellCheck](https://github.com/koalaman/shellcheck) / `executable bit check` / [shfmt](https://github.com/mvdan/sh) | -| **Snakemake** | [snakefmt](https://github.com/snakemake/snakefmt/) / [snakemake --lint](https://snakemake.readthedocs.io/en/stable/snakefiles/writing_snakefiles.html#best-practices) | -| **SQL** | [sqlfluff](https://github.com/sqlfluff/sqlfluff) | -| **Tekton** | [tekton-lint](https://github.com/IBM/tekton-lint) | -| **Terraform** | [fmt](https://developer.hashicorp.com/terraform/cli/commands/fmt) / [tflint](https://github.com/terraform-linters/tflint) / [terrascan](https://github.com/accurics/terrascan) | -| **Terragrunt** | [terragrunt](https://github.com/gruntwork-io/terragrunt) | -| **TypeScript** | [ESLint](https://eslint.org/) / [standard js](https://standardjs.com/) | -| **XML** | [LibXML](http://xmlsoft.org/) | -| **YAML** | [YamlLint](https://github.com/adrienverge/yamllint) | +| **PowerShell** | [PSScriptAnalyzer](https://github.com/PowerShell/Psscriptanalyzer) | +| **Protocol Buffers** | [protolint](https://github.com/yoheimuta/protolint) | +| **Python3** | [pylint](https://pylint.pycqa.org/) / [flake8](https://flake8.pycqa.org/en/latest/) / [black](https://github.com/psf/black) / [isort](https://pypi.org/project/isort/) / [ruff](https://github.com/astral-sh/ruff) | +| **R** | [lintr](https://github.com/jimhester/lintr) | +| **Raku** | [Raku](https://raku.org) | +| **Renovate** | [renovate-config-validator](https://docs.renovatebot.com/config-validation/) | +| **Ruby** | [RuboCop](https://github.com/rubocop-hq/rubocop) | +| **Rust** | [Rustfmt](https://github.com/rust-lang/rustfmt) / [Clippy](https://github.com/rust-lang/rust-clippy) | +| **Scala** | [scalafmt](https://github.com/scalameta/scalafmt) | +| **Secrets** | [GitLeaks](https://github.com/zricethezav/gitleaks) | +| **Shell** | [ShellCheck](https://github.com/koalaman/shellcheck) / `executable bit check` / [shfmt](https://github.com/mvdan/sh) | +| **Snakemake** | [snakefmt](https://github.com/snakemake/snakefmt/) / [snakemake --lint](https://snakemake.readthedocs.io/en/stable/snakefiles/writing_snakefiles.html#best-practices) | +| **SQL** | [sqlfluff](https://github.com/sqlfluff/sqlfluff) | +| **Tekton** | [tekton-lint](https://github.com/IBM/tekton-lint) | +| **Terraform** | [fmt](https://developer.hashicorp.com/terraform/cli/commands/fmt) / [tflint](https://github.com/terraform-linters/tflint) / [terrascan](https://github.com/accurics/terrascan) | +| **Terragrunt** | [terragrunt](https://github.com/gruntwork-io/terragrunt) | +| **TypeScript** | [ESLint](https://eslint.org/) / [standard js](https://standardjs.com/) | +| **XML** | [LibXML](http://xmlsoft.org/) | +| **YAML** | [YamlLint](https://github.com/adrienverge/yamllint) | ## Get started @@ -114,42 +114,41 @@ To run super-linter as a GitHub Action, you do the following: 1. Create a new [GitHub Actions workflow](https://docs.github.com/en/actions/using-workflows/about-workflows#about-workflows) in your repository with the following content: - ```yaml - --- - name: Lint + ```yaml + --- + name: Lint - on: # yamllint disable-line rule:truthy - push: null - pull_request: null + on: # yamllint disable-line rule:truthy + push: null + pull_request: null - permissions: { } + permissions: {} - jobs: - build: - name: Lint - runs-on: ubuntu-latest + jobs: + build: + name: Lint + runs-on: ubuntu-latest - permissions: - contents: read - packages: read - # To report GitHub Actions status checks - statuses: write + permissions: + contents: read + packages: read + # To report GitHub Actions status checks + statuses: write - steps: - - name: Checkout code - uses: actions/checkout@v4 - with: - # super-linter needs the full git history to get the - # list of files that changed across commits - fetch-depth: 0 + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + # super-linter needs the full git history to get the + # list of files that changed across commits + fetch-depth: 0 - - name: Super-linter - uses: super-linter/super-linter@v6.9.0 # x-release-please-version - env: - # To report GitHub Actions status checks - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - ... - ``` + - name: Super-linter + uses: super-linter/super-linter@v6.9.0 # x-release-please-version + env: + # To report GitHub Actions status checks + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + ``` 1. Commit that file to a new branch. 1. Push the new commit to the remote repository. @@ -189,196 +188,212 @@ Super-Linter provides several variants: You can configure Super-linter using the following environment variables: -| **Environment variable** | **Default Value** | **Description** | -|-------------------------------------------------|---------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **ANSIBLE_CONFIG_FILE** | `.ansible-lint.yml` | Filename for [Ansible-lint configuration](https://ansible.readthedocs.io/projects/lint/configuring/) (ex: `.ansible-lint`, `.ansible-lint.yml`) | -| **ANSIBLE_DIRECTORY** | `/ansible` | Flag to set the root directory for Ansible file location(s), relative to `DEFAULT_WORKSPACE`. Set to `.` to use the top-level of the `DEFAULT_WORKSPACE`. | -| **BASH_EXEC_IGNORE_LIBRARIES** | `false` | If set to `true`, shell files with a file extension and no shebang line are ignored when checking if the executable bit is set. | -| **BASH_FILE_NAME** | `.shellcheckrc` | Filename for [Shellcheck](https://github.com/koalaman/shellcheck/blob/master/shellcheck.1.md#rc-files) | -| **BASH_SEVERITY** | Shellcheck default severity | Specify the minimum severity of errors to consider in shellcheck. Valid values in order of severity are error, warning, info and style. | -| **CHECKOV_FILE_NAME** | `.checkov.yaml` | Configuration filename for Checkov. | -| **CLANG_FORMAT_FILE_NAME** | `.clang-format` | Configuration filename for [clang-format](https://clang.llvm.org/docs/ClangFormatStyleOptions.html). | -| **CREATE_LOG_FILE** | `false` | If set to `true`, it creates the log file. You can set the log filename using the `LOG_FILE` environment variable. This overrides any existing log files. | -| **CSS_FILE_NAME** | `.stylelintrc.json` | Filename for [Stylelint configuration](https://github.com/stylelint/stylelint) (ex: `.stylelintrc.yml`, `.stylelintrc.yaml`) | -| **DEFAULT_BRANCH** | Default repository branch when running on GitHub Actions, `master` otherwise | The name of the repository default branch. There's no need to configure this variable when running on GitHub Actions | -| **DEFAULT_WORKSPACE** | `/tmp/lint` | The location containing files to lint if you are running locally. Defaults to `GITHUB_WORKSPACE` when running in GitHub Actions. There's no need to configure this variable when running on GitHub Actions. | -| **DISABLE_ERRORS** | `false` | Flag to have the linter complete with exit code 0 even if errors were detected. | -| **DOCKERFILE_HADOLINT_FILE_NAME** | `.hadolint.yaml` | Filename for [hadolint configuration](https://github.com/hadolint/hadolint) (ex: `.hadolintlintrc.yaml`) | -| **EDITORCONFIG_FILE_NAME** | `.ecrc` | Filename for [editorconfig-checker configuration](https://github.com/editorconfig-checker/editorconfig-checker) | -| **ENABLE_GITHUB_ACTIONS_GROUP_TITLE** | `false` if `RUN_LOCAL=true`, `true` otherwise | Flag to enable [GitHub Actions log grouping](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#grouping-log-lines). | -| **ENABLE_GITHUB_ACTIONS_STEP_SUMMARY** | `false` if `RUN_LOCAL=true`, `true` otherwise | Flag to enable [GitHub Actions job summary](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary) for the Super-linter action. For more information, see [Summary outputs](#summary-outputs). | -| **FILTER_REGEX_EXCLUDE** | not set | Regular expression defining which files will be excluded from linting (ex: `.*src/test.*`). Not setting this variable means to process all files. | -| **FILTER_REGEX_INCLUDE** | not set | Regular expression defining which files will be processed by linters (ex: `.*src/.*`). Not setting this variable means to process all files. `FILTER_REGEX_INCLUDE` is evaluated before `FILTER_REGEX_EXCLUDE`. | -| **FIX_ANSIBLE** | `false` | Option to enable fix mode for `ANSIBLE`. | -| **FIX_CLANG_FORMAT** | `false` | Option to enable fix mode for `CLANG_FORMAT`. | -| **FIX_CSHARP** | `false` | Option to enable fix mode for `CSHARP`. | -| **FIX_CSS** | `false` | Option to enable fix mode for `CSS`. | -| **FIX_ENV** | `false` | Option to enable fix mode for `ENV`. | -| **FIX_GO** | `false` | Option to enable fix mode for `GO`. | -| **FIX_GO_MODULES** | `false` | Option to enable fix mode for `GO_MODULES`. | -| **FIX_GOOGLE_JAVA_FORMAT** | `false` | Option to enable fix mode for `GOOGLE_JAVA_FORMAT`. | -| **FIX_GROOVY** | `false` | Option to enable fix mode for `GROOVY`. | -| **FIX_JAVASCRIPT_ES** | `false` | Option to enable fix mode for `JAVASCRIPT_ES`. | -| **FIX_JAVASCRIPT_PRETTIER** | `false` | Option to enable fix mode for `JAVASCRIPT_PRETTIER`. | -| **FIX_JAVASCRIPT_STANDARD** | `false` | Option to enable fix mode for `JAVASCRIPT_STANDARD`. | -| **FIX_JSON** | `false` | Option to enable fix mode for `JSON`. | -| **FIX_JSONC** | `false` | Option to enable fix mode for `JSONC`. | -| **FIX_JSX** | `false` | Option to enable fix mode for `JSX`. | -| **FIX_MARKDOWN** | `false` | Option to enable fix mode for `MARKDOWN`. | -| **FIX_POWERSHELL** | `false` | Option to enable fix mode for `POWERSHELL`. | -| **FIX_PROTOBUF** | `false` | Option to enable fix mode for `PROTOBUF`. | -| **FIX_PYTHON_BLACK** | `false` | Option to enable fix mode for `PYTHON_BLACK`. | -| **FIX_PYTHON_ISORT** | `false` | Option to enable fix mode for `PYTHON_ISORT`. | -| **FIX_PYTHON_RUFF** | `false` | Option to enable fix mode for `PYTHON_RUFF`. | -| **FIX_RUBY** | `false` | Option to enable fix mode for `RUBY`. | -| **FIX_RUST_2015** | `false` | Option to enable fix mode for `RUST_2015`. | -| **FIX_RUST_2018** | `false` | Option to enable fix mode for `RUST_2018`. | -| **FIX_RUST_2021** | `false` | Option to enable fix mode for `RUST_2021`. | -| **FIX_RUST_CLIPPY** | `false` | Option to enable fix mode for `RUST_CLIPPY`. When `FIX_RUST_CLIPPY` is `true`, Clippy is allowed to fix issues in the workspace even if there are unstaged and staged changes in the workspace. | -| **FIX_SCALAFMT** | `false` | Option to enable fix mode for `SCALAFMT`. | -| **FIX_SHELL_SHFMT** | `false` | Option to enable fix mode for `SHELL_SHFMT`. | -| **FIX_SNAKEMAKE_SNAKEFMT** | `false` | Option to enable fix mode for `SNAKEMAKE_SNAKEFMT`. | -| **FIX_SQLFLUFF** | `false` | Option to enable fix mode for `SQLFLUFF`. | -| **FIX_TERRAFORM_FMT** | `false` | Option to enable fix mode for `TERRAFORM_FMT`. | -| **FIX_TSX** | `false` | Option to enable fix mode for `TSX`. | -| **FIX_TYPESCRIPT_ES** | `false` | Option to enable fix mode for `TYPESCRIPT_ES`. | -| **FIX_TYPESCRIPT_PRETTIER** | `false` | Option to enable fix mode for `TYPESCRIPT_PRETTIER`. | -| **FIX_TYPESCRIPT_STANDARD** | `false` | Option to enable fix mode for `TYPESCRIPT_STANDARD`. | -| **GITHUB_ACTIONS_CONFIG_FILE** | `actionlint.yml` | Filename for [Actionlint configuration](https://github.com/rhysd/actionlint/blob/main/docs/config.md) (ex: `actionlint.yml`) | -| **GITHUB_ACTIONS_COMMAND_ARGS** | `null` | Additional arguments passed to `actionlint` command. Useful to [ignore some errors](https://github.com/rhysd/actionlint/blob/main/docs/usage.md#ignore-some-errors) | -| **GITHUB_CUSTOM_API_URL** | `https://api.${GITHUB_DOMAIN}` | Specify a custom GitHub API URL in case GitHub Enterprise is used: e.g. `https://github.myenterprise.com/api/v3` | -| **GITHUB_CUSTOM_SERVER_URL** | `https://${GITHUB_DOMAIN}"` | Specify a custom GitHub server URL. Useful for GitHub Enterprise instances. | -| **GITHUB_DOMAIN** | `github.com` | Specify a custom GitHub domain in case GitHub Enterprise is used: e.g. `github.myenterprise.com`. `GITHUB_DOMAIN` is a convenience configuration variable to automatically build `GITHUB_CUSTOM_API_URL` and `GITHUB_CUSTOM_SERVER_URL`. | -| **GITLEAKS_CONFIG_FILE** | `.gitleaks.toml` | Filename for [GitLeaks configuration](https://github.com/zricethezav/gitleaks#configuration) (ex: `.gitleaks.toml`) | -| **GITLEAKS_LOG_LEVEL** | Gitleaks default log level | Gitleaks log level. Defaults to the Gitleaks default log level. | -| **IGNORE_GENERATED_FILES** | `false` | If set to `true`, super-linter will ignore all the files with `@generated` marker but without `@not-generated` marker. | -| **IGNORE_GITIGNORED_FILES** | `false` | If set to `true`, super-linter will ignore all the files that are ignored by Git. | -| **JAVA_FILE_NAME** | `sun_checks.xml` | Filename for [Checkstyle configuration](https://checkstyle.sourceforge.io/config.html). Checkstyle embeds several configuration files, such as `sun_checks.xml`, `google_checks.xml` that you can use without providing your own configuration file. | -| **JAVASCRIPT_ES_CONFIG_FILE** | `.eslintrc.yml` | Filename for [ESLint configuration](https://eslint.org/docs/user-guide/configuring#configuration-file-formats) (ex: `.eslintrc.yml`, `.eslintrc.json`) | -| **JSCPD_CONFIG_FILE** | `.jscpd.json` | Filename for JSCPD configuration | -| **KUBERNETES_KUBECONFORM_OPTIONS** | `null` | Additional arguments to pass to the command-line when running **Kubernetes Kubeconform** (Example: --ignore-missing-schemas) | -| **LINTER_RULES_PATH** | `.github/linters` | Directory for all linter configuration rules. | -| **LOG_FILE** | `super-linter.log` | The filename for outputting logs. Super-linter saves the log file to `${DEFAULT_WORKSPACE}/${LOG_FILE}`. | -| **LOG_LEVEL** | `INFO` | How much output the script will generate to the console. One of `ERROR`, `WARN`, `NOTICE`, `INFO`, or `DEBUG`. | -| **MARKDOWN_CONFIG_FILE** | `.markdown-lint.yml` | Filename for [Markdownlint configuration](https://github.com/DavidAnson/markdownlint#optionsconfig) (ex: `.markdown-lint.yml`, `.markdownlint.json`, `.markdownlint.yaml`) | -| **MARKDOWN_CUSTOM_RULE_GLOBS** | not set | Comma-separated list of [file globs](https://github.com/igorshubovych/markdownlint-cli#globbing) matching [custom Markdownlint rule files](https://github.com/DavidAnson/markdownlint/blob/main/doc/CustomRules.md). | -| **MULTI_STATUS** | `true` | A status API is made for each language that is linted to make visual parsing easier. | -| **NATURAL_LANGUAGE_CONFIG_FILE** | `.textlintrc` | Filename for [textlint configuration](https://textlint.github.io/docs/getting-started.html#configuration) (ex: `.textlintrc`) | -| **PERL_PERLCRITIC_OPTIONS** | `null` | Additional arguments to pass to the command-line when running **perlcritic** (Example: --theme community) | -| **POWERSHELL_CONFIG_FILE** | `.powershell-psscriptanalyzer.psd1` | Filename for [PSScriptAnalyzer configuration](https://learn.microsoft.com/en-gb/powershell/utility-modules/psscriptanalyzer/using-scriptanalyzer) | -| **PHP_CONFIG_FILE** | `php.ini` | Filename for [PHP Configuration](https://www.php.net/manual/en/configuration.file.php) (ex: `php.ini`) | -| **PHP_PHPCS_FILE_NAME** | `phpcs.xml` | Filename for [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) (ex: `.phpcs.xml`, `.phpcs.xml.dist`) | -| **PHP_PHPSTAN_CONFIG_FILE** | `phpstan.neon` | Filename for [PHPStan Configuration](https://phpstan.org/config-reference) (ex: `phpstan.neon`) | -| **PROTOBUF_CONFIG_FILE** | `.protolintrc.yml` | Filename for [protolint configuration](https://github.com/yoheimuta/protolint/blob/master/_example/config/.protolint.yaml) (ex: `.protolintrc.yml`) | -| **PYTHON_BLACK_CONFIG_FILE** | `.python-black` | Filename for [black configuration](https://github.com/psf/black/blob/main/docs/guides/using_black_with_other_tools.md#black-compatible-configurations) (ex: `.isort.cfg`, `pyproject.toml`) | -| **PYTHON_FLAKE8_CONFIG_FILE** | `.flake8` | Filename for [flake8 configuration](https://flake8.pycqa.org/en/latest/user/configuration.html) (ex: `.flake8`, `tox.ini`) | -| **PYTHON_ISORT_CONFIG_FILE** | `.isort.cfg` | Filename for [isort configuration](https://pycqa.github.io/isort/docs/configuration/config_files.html) (ex: `.isort.cfg`, `pyproject.toml`) | -| **PYTHON_MYPY_CONFIG_FILE** | `.mypy.ini` | Filename for [mypy configuration](https://mypy.readthedocs.io/en/stable/config_file.html) (ex: `.mypy.ini`, `setup.config`) | -| **PYTHON_PYLINT_CONFIG_FILE** | `.python-lint` | Filename for [pylint configuration](https://pylint.pycqa.org/en/latest/user_guide/run.html?highlight=rcfile#command-line-options) (ex: `.python-lint`, `.pylintrc`) | -| **PYTHON_RUFF_CONFIG_FILE** | `.ruff.toml` | Filename for [ruff configuration](https://docs.astral.sh/ruff/configuration/) | -| **RENOVATE_SHAREABLE_CONFIG_PRESET_FILE_NAMES** | not set | Comma-separated filenames for [renovate shareable config preset](https://docs.renovatebot.com/config-presets/) (ex: `default.json`) | -| **RUBY_CONFIG_FILE** | `.ruby-lint.yml` | Filename for [rubocop configuration](https://docs.rubocop.org/rubocop/configuration.html) (ex: `.ruby-lint.yml`, `.rubocop.yml`) | -| **SAVE_SUPER_LINTER_OUTPUT** | `false` | If set to `true`, Super-linter will save its output in the workspace. For more information, see [Super-linter outputs](#super-linter-outputs). | -| **SAVE_SUPER_LINTER_SUMMARY** | `false` | If set to `true`, Super-linter will save a summary. For more information, see [Summary outputs](#summary-outputs). | -| **SCALAFMT_CONFIG_FILE** | `.scalafmt.conf` | Filename for [scalafmt configuration](https://scalameta.org/scalafmt/docs/configuration.html) (ex: `.scalafmt.conf`) | -| **SNAKEMAKE_SNAKEFMT_CONFIG_FILE** | `.snakefmt.toml` | Filename for [Snakemake configuration](https://github.com/snakemake/snakefmt#configuration) (ex: `pyproject.toml`, `.snakefmt.toml`) | -| **SSL_CERT_SECRET** | `none` | SSL cert to add to the **Super-Linter** trust store. This is needed for users on `self-hosted` runners or need to inject the cert for security standards (ex. ${{ secrets.SSL_CERT }}) | -| **SSH_KEY** | `none` | SSH key that has access to your private repositories | -| **SSH_SETUP_GITHUB** | `false` | If set to `true`, adds the `github.com` SSH key to `known_hosts`. This is ignored if `SSH_KEY` is provided - i.e. the `github.com` SSH key is always added if `SSH_KEY` is provided | -| **SSH_INSECURE_NO_VERIFY_GITHUB_KEY** | `false` | **INSECURE -** If set to `true`, does not verify the fingerprint of the github.com SSH key before adding this. This is not recommended! | -| **SQLFLUFF_CONFIG_FILE** | `/.sqlfluff` | Filename for [SQLFLUFF configuration](https://docs.sqlfluff.com/en/stable/configuration.html) (ex: `/.sqlfluff`, `pyproject.toml`) | -| **SUPER_LINTER_OUTPUT_DIRECTORY_NAME** | `super-linter-output` | Name of the directory where super-linter saves its output. | -| **SUPER_LINTER_SUMMARY_FILE_NAME** | `super-linter-summary.md` | Name of the file where to save the summary output. For more information, see [Summary outputs](#summary-outputs). | -| **SUPPRESS_FILE_TYPE_WARN** | `false` | If set to `true`, will hide warning messages about files without their proper extensions. Default is `false` | -| **SUPPRESS_POSSUM** | `false` | If set to `true`, will hide the ASCII possum at top of log output. Default is `false` | -| **TERRAFORM_TERRASCAN_CONFIG_FILE** | `terrascan.toml` | Filename for [terrascan configuration](https://github.com/accurics/terrascan) (ex: `terrascan.toml`) | -| **TERRAFORM_TFLINT_CONFIG_FILE** | `.tflint.hcl` | Filename for [tfLint configuration](https://github.com/terraform-linters/tflint) (ex: `.tflint.hcl`) | -| **TYPESCRIPT_ES_CONFIG_FILE** | `.eslintrc.yml` | Filename for [ESLint configuration](https://eslint.org/docs/user-guide/configuring#configuration-file-formats) (ex: `.eslintrc.yml`, `.eslintrc.json`) | -| **TYPESCRIPT_STANDARD_TSCONFIG_FILE** | `${DEFAULT_WORKSPACE}/tsconfig.json` | Path to the [TypeScript project configuration](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) in [ts-standard](https://github.com/standard/ts-standard). The path is relative to `DEFAULT_WORKSPACE` | -| **USE_FIND_ALGORITHM** | `false` | By default, we use `git diff` to find all files in the workspace and what has been updated, this would enable the Linux `find` method instead to find all files to lint | -| **VALIDATE_ALL_CODEBASE** | `true` | Will parse the entire repository and find all files to validate across all types. **NOTE:** When set to `false`, only **new** or **edited** files will be parsed for validation. | -| **VALIDATE_ANSIBLE** | `true` | Flag to enable or disable the linting process of the Ansible language. | -| **VALIDATE_ARM** | `true` | Flag to enable or disable the linting process of the ARM language. | -| **VALIDATE_BASH** | `true` | Flag to enable or disable the linting process of the Bash language. | -| **VALIDATE_BASH_EXEC** | `true` | Flag to enable or disable the linting process of the Bash language to validate if file is stored as executable. | -| **VALIDATE_CPP** | `true` | Flag to enable or disable the linting process of the C++ language. | -| **VALIDATE_CHECKOV** | `true` | Flag to enable or disable the linting process with Checkov | -| **VALIDATE_CLANG_FORMAT** | `true` | Flag to enable or disable the linting process of the C++/C language with clang-format. | -| **VALIDATE_CLOJURE** | `true` | Flag to enable or disable the linting process of the Clojure language. | -| **VALIDATE_CLOUDFORMATION** | `true` | Flag to enable or disable the linting process of the AWS Cloud Formation language. | -| **VALIDATE_COFFEESCRIPT** | `true` | Flag to enable or disable the linting process of the CoffeeScript language. | -| **VALIDATE_CSHARP** | `true` | Flag to enable or disable the linting process of the C# language. | -| **VALIDATE_CSS** | `true` | Flag to enable or disable the linting process of the CSS language. | -| **VALIDATE_DART** | `true` | Flag to enable or disable the linting process of the Dart language. | -| **VALIDATE_DOCKERFILE_HADOLINT** | `true` | Flag to enable or disable the linting process of the Docker language. | -| **VALIDATE_EDITORCONFIG** | `true` | Flag to enable or disable the linting process with the EditorConfig. | -| **VALIDATE_ENV** | `true` | Flag to enable or disable the linting process of the ENV language. | -| **VALIDATE_GHERKIN** | `true` | Flag to enable or disable the linting process of the Gherkin language. | -| **VALIDATE_GITHUB_ACTIONS** | `true` | Flag to enable or disable the linting process of the GitHub Actions. | -| **VALIDATE_GITLEAKS** | `true` | Flag to enable or disable the linting process of the secrets. | -| **VALIDATE_GO** | `true` | Flag to enable or disable the linting process of the individual Golang files. Set this to `false` if you want to lint Go modules. See the `VALIDATE_GO_MODULES` variable. | -| **VALIDATE_GO_MODULES** | `true` | Flag to enable or disable the linting process of Go modules. Super-linter considers a directory to be a Go module if it contains a file named `go.mod`. | -| **VALIDATE_GO_RELEASER** | `true` | Flag to enable or disable the linting process of the GoReleaser config file. | -| **VALIDATE_GOOGLE_JAVA_FORMAT** | `true` | Flag to enable or disable the linting process of the Java language. (Utilizing: google-java-format) | -| **VALIDATE_GROOVY** | `true` | Flag to enable or disable the linting process of the language. | -| **VALIDATE_HTML** | `true` | Flag to enable or disable the linting process of the HTML language. | -| **VALIDATE_JAVA** | `true` | Flag to enable or disable the linting process of the Java language. (Utilizing: checkstyle) | -| **VALIDATE_JAVASCRIPT_ES** | `true` | Flag to enable or disable the linting process of the JavaScript language. (Utilizing: ESLint) | -| **VALIDATE_JAVASCRIPT_PRETTIER** | `true` | Flag to enable or disable the linting process of the JavaScript language. (Utilizing: prettier) | -| **VALIDATE_JAVASCRIPT_STANDARD** | `true` | Flag to enable or disable the linting process of the JavaScript language. (Utilizing: standard) | -| **VALIDATE_JSCPD** | `true` | Flag to enable or disable JSCPD. | -| **VALIDATE_JSON** | `true` | Flag to enable or disable the linting process of the JSON language. | -| **VALIDATE_JSONC** | `true` | Flag to enable or disable the linting process of the JSONC and JSON5 languages. | -| **VALIDATE_JSX** | `true` | Flag to enable or disable the linting process for jsx files (Utilizing: ESLint) | -| **VALIDATE_KOTLIN** | `true` | Flag to enable or disable the linting process of the Kotlin language. | -| **VALIDATE_KUBERNETES_KUBECONFORM** | `true` | Flag to enable or disable the linting process of Kubernetes descriptors with Kubeconform | -| **VALIDATE_LATEX** | `true` | Flag to enable or disable the linting process of the LaTeX language. | -| **VALIDATE_LUA** | `true` | Flag to enable or disable the linting process of the language. | -| **VALIDATE_MARKDOWN** | `true` | Flag to enable or disable the linting process of the Markdown language. | -| **VALIDATE_NATURAL_LANGUAGE** | `true` | Flag to enable or disable the linting process of the natural language. | -| **VALIDATE_OPENAPI** | `true` | Flag to enable or disable the linting process of the OpenAPI language. | -| **VALIDATE_PERL** | `true` | Flag to enable or disable the linting process of the Perl language. | -| **VALIDATE_PHP** | `true` | Flag to enable or disable the linting process of the PHP language. (Utilizing: PHP built-in linter) (keep for backward compatibility) | -| **VALIDATE_PHP_BUILTIN** | `true` | Flag to enable or disable the linting process of the PHP language. (Utilizing: PHP built-in linter) | -| **VALIDATE_PHP_PHPCS** | `true` | Flag to enable or disable the linting process of the PHP language. (Utilizing: PHP CodeSniffer) | -| **VALIDATE_PHP_PHPSTAN** | `true` | Flag to enable or disable the linting process of the PHP language. (Utilizing: PHPStan) | -| **VALIDATE_PHP_PSALM** | `true` | Flag to enable or disable the linting process of the PHP language. (Utilizing: PSalm) | -| **VALIDATE_POWERSHELL** | `true` | Flag to enable or disable the linting process of the Powershell language. | -| **VALIDATE_PROTOBUF** | `true` | Flag to enable or disable the linting process of the Protobuf language. | -| **VALIDATE_PYTHON** | `true` | Flag to enable or disable the linting process of the Python language. (Utilizing: pylint) (keep for backward compatibility) | -| **VALIDATE_PYTHON_BLACK** | `true` | Flag to enable or disable the linting process of the Python language. (Utilizing: black) | -| **VALIDATE_PYTHON_FLAKE8** | `true` | Flag to enable or disable the linting process of the Python language. (Utilizing: flake8) | -| **VALIDATE_PYTHON_ISORT** | `true` | Flag to enable or disable the linting process of the Python language. (Utilizing: isort) | -| **VALIDATE_PYTHON_MYPY** | `true` | Flag to enable or disable the linting process of the Python language. (Utilizing: mypy) | -| **VALIDATE_PYTHON_PYLINT** | `true` | Flag to enable or disable the linting process of the Python language. (Utilizing: pylint) | -| **VALIDATE_PYTHON_RUFF** | `true` | Flag to enable or disable the linting process of the Python language. (Utilizing: ruff) | -| **VALIDATE_R** | `true` | Flag to enable or disable the linting process of the R language. | -| **VALIDATE_RAKU** | `true` | Flag to enable or disable the linting process of the Raku language. | -| **VALIDATE_RENOVATE** | `true` | Flag to enable or disable the linting process of the Renovate configuration files. | -| **VALIDATE_RUBY** | `true` | Flag to enable or disable the linting process of the Ruby language. | -| **VALIDATE_RUST_2015** | `true` | Flag to enable or disable the linting process of the Rust language. (edition: 2015) | -| **VALIDATE_RUST_2018** | `true` | Flag to enable or disable the linting process of Rust language. (edition: 2018) | -| **VALIDATE_RUST_2021** | `true` | Flag to enable or disable the linting process of Rust language. (edition: 2021) | -| **VALIDATE_RUST_CLIPPY** | `true` | Flag to enable or disable the clippy linting process of Rust language. | -| **VALIDATE_SCALAFMT** | `true` | Flag to enable or disable the linting process of Scala language. (Utilizing: scalafmt --test) | -| **VALIDATE_SHELL_SHFMT** | `true` | Flag to enable or disable the linting process of Shell scripts. (Utilizing: shfmt) | -| **VALIDATE_SNAKEMAKE_LINT** | `true` | Flag to enable or disable the linting process of Snakefiles. (Utilizing: snakemake --lint) | -| **VALIDATE_SNAKEMAKE_SNAKEFMT** | `true` | Flag to enable or disable the linting process of Snakefiles. (Utilizing: snakefmt) | -| **VALIDATE_STATES** | `true` | Flag to enable or disable the linting process for AWS States Language. | -| **VALIDATE_SQLFLUFF** | `true` | Flag to enable or disable the linting process of the SQL language. (Utilizing: sqlfuff) | -| **VALIDATE_TEKTON** | `true` | Flag to enable or disable the linting process of the Tekton language. | -| **VALIDATE_TERRAFORM_FMT** | `true` | Flag to enable or disable the formatting process of the Terraform files. | -| **VALIDATE_TERRAFORM_TERRASCAN** | `true` | Flag to enable or disable the linting process of the Terraform language for security related issues. | -| **VALIDATE_TERRAFORM_TFLINT** | `true` | Flag to enable or disable the linting process of the Terraform language. (Utilizing tflint) | -| **VALIDATE_TERRAGRUNT** | `true` | Flag to enable or disable the linting process for Terragrunt files. | -| **VALIDATE_TSX** | `true` | Flag to enable or disable the linting process for tsx files (Utilizing: ESLint) | -| **VALIDATE_TYPESCRIPT_ES** | `true` | Flag to enable or disable the linting process of the TypeScript language. (Utilizing: ESLint) | -| **VALIDATE_TYPESCRIPT_PRETTIER** | `true` | Flag to enable or disable the linting process of the TypeScript language. (Utilizing: prettier) | -| **VALIDATE_TYPESCRIPT_STANDARD** | `true` | Flag to enable or disable the linting process of the TypeScript language. (Utilizing: ts-standard) | -| **VALIDATE_XML** | `true` | Flag to enable or disable the linting process of the XML language. | -| **VALIDATE_YAML** | `true` | Flag to enable or disable the linting process of the YAML language. | -| **YAML_CONFIG_FILE** | `.yaml-lint.yml` | Filename for [Yamllint configuration](https://yamllint.readthedocs.io/en/stable/configuration.html) (ex: `.yaml-lint.yml`, `.yamllint.yml`) | -| **YAML_ERROR_ON_WARNING** | `false` | Flag to enable or disable the error on warning for Yamllint. | +| **Environment variable** | **Default Value** | **Description** | +| ----------------------------------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **ANSIBLE_CONFIG_FILE** | `.ansible-lint.yml` | Filename for [Ansible-lint configuration](https://ansible.readthedocs.io/projects/lint/configuring/) (ex: `.ansible-lint`, `.ansible-lint.yml`) | +| **ANSIBLE_DIRECTORY** | `/ansible` | Flag to set the root directory for Ansible file location(s), relative to `DEFAULT_WORKSPACE`. Set to `.` to use the top-level of the `DEFAULT_WORKSPACE`. | +| **BASH_EXEC_IGNORE_LIBRARIES** | `false` | If set to `true`, shell files with a file extension and no shebang line are ignored when checking if the executable bit is set. | +| **BASH_FILE_NAME** | `.shellcheckrc` | Filename for [Shellcheck](https://github.com/koalaman/shellcheck/blob/master/shellcheck.1.md#rc-files) | +| **BASH_SEVERITY** | Shellcheck default severity | Specify the minimum severity of errors to consider in shellcheck. Valid values in order of severity are error, warning, info and style. | +| **CHECKOV_FILE_NAME** | `.checkov.yaml` | Configuration filename for Checkov. | +| **CLANG_FORMAT_FILE_NAME** | `.clang-format` | Configuration filename for [clang-format](https://clang.llvm.org/docs/ClangFormatStyleOptions.html). | +| **CREATE_LOG_FILE** | `false` | If set to `true`, it creates the log file. You can set the log filename using the `LOG_FILE` environment variable. This overrides any existing log files. | +| **CSS_FILE_NAME** | `.stylelintrc.json` | Filename for [Stylelint configuration](https://github.com/stylelint/stylelint) (ex: `.stylelintrc.yml`, `.stylelintrc.yaml`) | +| **DEFAULT_BRANCH** | Default repository branch when running on GitHub Actions, `master` otherwise | The name of the repository default branch. There's no need to configure this variable when running on GitHub Actions | +| **DEFAULT_WORKSPACE** | `/tmp/lint` | The location containing files to lint if you are running locally. Defaults to `GITHUB_WORKSPACE` when running in GitHub Actions. There's no need to configure this variable when running on GitHub Actions. | +| **DISABLE_ERRORS** | `false` | Flag to have the linter complete with exit code 0 even if errors were detected. | +| **DOCKERFILE_HADOLINT_FILE_NAME** | `.hadolint.yaml` | Filename for [hadolint configuration](https://github.com/hadolint/hadolint) (ex: `.hadolintlintrc.yaml`) | +| **EDITORCONFIG_FILE_NAME** | `.ecrc` | Filename for [editorconfig-checker configuration](https://github.com/editorconfig-checker/editorconfig-checker) | +| **ENABLE_GITHUB_ACTIONS_GROUP_TITLE** | `false` if `RUN_LOCAL=true`, `true` otherwise | Flag to enable [GitHub Actions log grouping](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#grouping-log-lines). | +| **ENABLE_GITHUB_ACTIONS_STEP_SUMMARY** | `false` if `RUN_LOCAL=true`, `true` otherwise | Flag to enable [GitHub Actions job summary](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary) for the Super-linter action. For more information, see [Summary outputs](#summary-outputs). | +| **FILTER_REGEX_EXCLUDE** | not set | Regular expression defining which files will be excluded from linting (ex: `.*src/test.*`). Not setting this variable means to process all files. | +| **FILTER_REGEX_INCLUDE** | not set | Regular expression defining which files will be processed by linters (ex: `.*src/.*`). Not setting this variable means to process all files. `FILTER_REGEX_INCLUDE` is evaluated before `FILTER_REGEX_EXCLUDE`. | +| **FIX_ANSIBLE** | `false` | Option to enable fix mode for `ANSIBLE`. | +| **FIX_CLANG_FORMAT** | `false` | Option to enable fix mode for `CLANG_FORMAT`. | +| **FIX_CSHARP** | `false` | Option to enable fix mode for `CSHARP`. | +| **FIX_CSS_PRETTIER** | `true` | Flag to enable or disable the formatting of CSS, Sass, and SCSS files with Prettier. | +| **FIX_CSS** | `false` | Option to enable fix mode for `CSS`. | +| **FIX_ENV** | `false` | Option to enable fix mode for `ENV`. | +| **FIX_GO_MODULES** | `false` | Option to enable fix mode for `GO_MODULES`. | +| **FIX_GO** | `false` | Option to enable fix mode for `GO`. | +| **FIX_GOOGLE_JAVA_FORMAT** | `false` | Option to enable fix mode for `GOOGLE_JAVA_FORMAT`. | +| **FIX_GRAPHQL_PRETTIER** | `true` | Flag to enable or disable the formatting of GraphQL files with Prettier. | +| **FIX_GROOVY** | `false` | Option to enable fix mode for `GROOVY`. | +| **FIX_HTML_PRETTIER** | `true` | Flag to enable or disable the formatting of HTML files with Prettier. | +| **FIX_JAVASCRIPT_ES** | `false` | Option to enable fix mode for `JAVASCRIPT_ES`. | +| **FIX_JAVASCRIPT_PRETTIER** | `false` | Flag to enable or disable the formatting of JavaScript files with Prettier. | +| **FIX_JAVASCRIPT_STANDARD** | `false` | Option to enable fix mode for `JAVASCRIPT_STANDARD`. | +| **FIX_JSON_PRETTIER** | `true` | Flag to enable or disable the formatting of JSON files with Prettier. | +| **FIX_JSON** | `false` | Option to enable fix mode for `JSON`. | +| **FIX_JSONC** | `false` | Option to enable fix mode for `JSONC`. | +| **FIX_JSX_PRETTIER** | `true` | Flag to enable or disable the formatting of JSX files with Prettier. | +| **FIX_JSX** | `false` | Option to enable fix mode for `JSX`. | +| **FIX_MARKDOWN_PRETTIER** | `true` | Flag to enable or disable the formatting of Markdown files with Prettier. | +| **FIX_MARKDOWN** | `false` | Option to enable fix mode for `MARKDOWN`. | +| **FIX_POWERSHELL** | `false` | Option to enable fix mode for `POWERSHELL`. | +| **FIX_PROTOBUF** | `false` | Option to enable fix mode for `PROTOBUF`. | +| **FIX_PYTHON_BLACK** | `false` | Option to enable fix mode for `PYTHON_BLACK`. | +| **FIX_PYTHON_ISORT** | `false` | Option to enable fix mode for `PYTHON_ISORT`. | +| **FIX_PYTHON_RUFF** | `false` | Option to enable fix mode for `PYTHON_RUFF`. | +| **FIX_RUBY** | `false` | Option to enable fix mode for `RUBY`. | +| **FIX_RUST_2015** | `false` | Option to enable fix mode for `RUST_2015`. | +| **FIX_RUST_2018** | `false` | Option to enable fix mode for `RUST_2018`. | +| **FIX_RUST_2021** | `false` | Option to enable fix mode for `RUST_2021`. | +| **FIX_RUST_CLIPPY** | `false` | Option to enable fix mode for `RUST_CLIPPY`. When `FIX_RUST_CLIPPY` is `true`, Clippy is allowed to fix issues in the workspace even if there are unstaged and staged changes in the workspace. | +| **FIX_SCALAFMT** | `false` | Option to enable fix mode for `SCALAFMT`. | +| **FIX_SHELL_SHFMT** | `false` | Option to enable fix mode for `SHELL_SHFMT`. | +| **FIX_SNAKEMAKE_SNAKEFMT** | `false` | Option to enable fix mode for `SNAKEMAKE_SNAKEFMT`. | +| **FIX_SQLFLUFF** | `false` | Option to enable fix mode for `SQLFLUFF`. | +| **FIX_TERRAFORM_FMT** | `false` | Option to enable fix mode for `TERRAFORM_FMT`. | +| **FIX_TSX** | `false` | Option to enable fix mode for `TSX`. | +| **FIX_TYPESCRIPT_ES** | `false` | Option to enable fix mode for `TYPESCRIPT_ES`. | +| **FIX_TYPESCRIPT_PRETTIER** | `false` | Flag to enable or disable the formatting of TypeScript files with Prettier. | +| **FIX_TYPESCRIPT_STANDARD** | `false` | Option to enable fix mode for `TYPESCRIPT_STANDARD`. | +| **FIX_VUE_PRETTIER** | `true` | Flag to enable or disable the formatting of Vue files with Prettier. | +| **FIX_YAML_PRETTIER** | `true` | Flag to enable or disable the formatting of YAML files with Prettier. | +| **GITHUB_ACTIONS_CONFIG_FILE** | `actionlint.yml` | Filename for [Actionlint configuration](https://github.com/rhysd/actionlint/blob/main/docs/config.md) (ex: `actionlint.yml`) | +| **GITHUB_ACTIONS_COMMAND_ARGS** | `null` | Additional arguments passed to `actionlint` command. Useful to [ignore some errors](https://github.com/rhysd/actionlint/blob/main/docs/usage.md#ignore-some-errors) | +| **GITHUB_CUSTOM_API_URL** | `https://api.${GITHUB_DOMAIN}` | Specify a custom GitHub API URL in case GitHub Enterprise is used: e.g. `https://github.myenterprise.com/api/v3` | +| **GITHUB_CUSTOM_SERVER_URL** | `https://${GITHUB_DOMAIN}"` | Specify a custom GitHub server URL. Useful for GitHub Enterprise instances. | +| **GITHUB_DOMAIN** | `github.com` | Specify a custom GitHub domain in case GitHub Enterprise is used: e.g. `github.myenterprise.com`. `GITHUB_DOMAIN` is a convenience configuration variable to automatically build `GITHUB_CUSTOM_API_URL` and `GITHUB_CUSTOM_SERVER_URL`. | +| **GITLEAKS_CONFIG_FILE** | `.gitleaks.toml` | Filename for [GitLeaks configuration](https://github.com/zricethezav/gitleaks#configuration) (ex: `.gitleaks.toml`) | +| **GITLEAKS_LOG_LEVEL** | Gitleaks default log level | Gitleaks log level. Defaults to the Gitleaks default log level. | +| **IGNORE_GENERATED_FILES** | `false` | If set to `true`, super-linter will ignore all the files with `@generated` marker but without `@not-generated` marker. | +| **IGNORE_GITIGNORED_FILES** | `false` | If set to `true`, super-linter will ignore all the files that are ignored by Git. | +| **JAVA_FILE_NAME** | `sun_checks.xml` | Filename for [Checkstyle configuration](https://checkstyle.sourceforge.io/config.html). Checkstyle embeds several configuration files, such as `sun_checks.xml`, `google_checks.xml` that you can use without providing your own configuration file. | +| **JAVASCRIPT_ES_CONFIG_FILE** | `.eslintrc.yml` | Filename for [ESLint configuration](https://eslint.org/docs/user-guide/configuring#configuration-file-formats) (ex: `.eslintrc.yml`, `.eslintrc.json`) | +| **JSCPD_CONFIG_FILE** | `.jscpd.json` | Filename for JSCPD configuration | +| **KUBERNETES_KUBECONFORM_OPTIONS** | `null` | Additional arguments to pass to the command-line when running **Kubernetes Kubeconform** (Example: --ignore-missing-schemas) | +| **LINTER_RULES_PATH** | `.github/linters` | Directory for all linter configuration rules. | +| **LOG_FILE** | `super-linter.log` | The filename for outputting logs. Super-linter saves the log file to `${DEFAULT_WORKSPACE}/${LOG_FILE}`. | +| **LOG_LEVEL** | `INFO` | How much output the script will generate to the console. One of `ERROR`, `WARN`, `NOTICE`, `INFO`, or `DEBUG`. | +| **MARKDOWN_CONFIG_FILE** | `.markdown-lint.yml` | Filename for [Markdownlint configuration](https://github.com/DavidAnson/markdownlint#optionsconfig) (ex: `.markdown-lint.yml`, `.markdownlint.json`, `.markdownlint.yaml`) | +| **MARKDOWN_CUSTOM_RULE_GLOBS** | not set | Comma-separated list of [file globs](https://github.com/igorshubovych/markdownlint-cli#globbing) matching [custom Markdownlint rule files](https://github.com/DavidAnson/markdownlint/blob/main/doc/CustomRules.md). | +| **MULTI_STATUS** | `true` | A status API is made for each language that is linted to make visual parsing easier. | +| **NATURAL_LANGUAGE_CONFIG_FILE** | `.textlintrc` | Filename for [textlint configuration](https://textlint.github.io/docs/getting-started.html#configuration) (ex: `.textlintrc`) | +| **PERL_PERLCRITIC_OPTIONS** | `null` | Additional arguments to pass to the command-line when running **perlcritic** (Example: --theme community) | +| **POWERSHELL_CONFIG_FILE** | `.powershell-psscriptanalyzer.psd1` | Filename for [PSScriptAnalyzer configuration](https://learn.microsoft.com/en-gb/powershell/utility-modules/psscriptanalyzer/using-scriptanalyzer) | +| **PHP_CONFIG_FILE** | `php.ini` | Filename for [PHP Configuration](https://www.php.net/manual/en/configuration.file.php) (ex: `php.ini`) | +| **PHP_PHPCS_FILE_NAME** | `phpcs.xml` | Filename for [PHP CodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer) (ex: `.phpcs.xml`, `.phpcs.xml.dist`) | +| **PHP_PHPSTAN_CONFIG_FILE** | `phpstan.neon` | Filename for [PHPStan Configuration](https://phpstan.org/config-reference) (ex: `phpstan.neon`) | +| **PROTOBUF_CONFIG_FILE** | `.protolintrc.yml` | Filename for [protolint configuration](https://github.com/yoheimuta/protolint/blob/master/_example/config/.protolint.yaml) (ex: `.protolintrc.yml`) | +| **PYTHON_BLACK_CONFIG_FILE** | `.python-black` | Filename for [black configuration](https://github.com/psf/black/blob/main/docs/guides/using_black_with_other_tools.md#black-compatible-configurations) (ex: `.isort.cfg`, `pyproject.toml`) | +| **PYTHON_FLAKE8_CONFIG_FILE** | `.flake8` | Filename for [flake8 configuration](https://flake8.pycqa.org/en/latest/user/configuration.html) (ex: `.flake8`, `tox.ini`) | +| **PYTHON_ISORT_CONFIG_FILE** | `.isort.cfg` | Filename for [isort configuration](https://pycqa.github.io/isort/docs/configuration/config_files.html) (ex: `.isort.cfg`, `pyproject.toml`) | +| **PYTHON_MYPY_CONFIG_FILE** | `.mypy.ini` | Filename for [mypy configuration](https://mypy.readthedocs.io/en/stable/config_file.html) (ex: `.mypy.ini`, `setup.config`) | +| **PYTHON_PYLINT_CONFIG_FILE** | `.python-lint` | Filename for [pylint configuration](https://pylint.pycqa.org/en/latest/user_guide/run.html?highlight=rcfile#command-line-options) (ex: `.python-lint`, `.pylintrc`) | +| **PYTHON_RUFF_CONFIG_FILE** | `.ruff.toml` | Filename for [ruff configuration](https://docs.astral.sh/ruff/configuration/) | +| **RENOVATE_SHAREABLE_CONFIG_PRESET_FILE_NAMES** | not set | Comma-separated filenames for [renovate shareable config preset](https://docs.renovatebot.com/config-presets/) (ex: `default.json`) | +| **RUBY_CONFIG_FILE** | `.ruby-lint.yml` | Filename for [rubocop configuration](https://docs.rubocop.org/rubocop/configuration.html) (ex: `.ruby-lint.yml`, `.rubocop.yml`) | +| **SAVE_SUPER_LINTER_OUTPUT** | `false` | If set to `true`, Super-linter will save its output in the workspace. For more information, see [Super-linter outputs](#super-linter-outputs). | +| **SAVE_SUPER_LINTER_SUMMARY** | `false` | If set to `true`, Super-linter will save a summary. For more information, see [Summary outputs](#summary-outputs). | +| **SCALAFMT_CONFIG_FILE** | `.scalafmt.conf` | Filename for [scalafmt configuration](https://scalameta.org/scalafmt/docs/configuration.html) (ex: `.scalafmt.conf`) | +| **SNAKEMAKE_SNAKEFMT_CONFIG_FILE** | `.snakefmt.toml` | Filename for [Snakemake configuration](https://github.com/snakemake/snakefmt#configuration) (ex: `pyproject.toml`, `.snakefmt.toml`) | +| **SSL_CERT_SECRET** | `none` | SSL cert to add to the **Super-Linter** trust store. This is needed for users on `self-hosted` runners or need to inject the cert for security standards (ex. ${{ secrets.SSL_CERT }}) | +| **SSH_KEY** | `none` | SSH key that has access to your private repositories | +| **SSH_SETUP_GITHUB** | `false` | If set to `true`, adds the `github.com` SSH key to `known_hosts`. This is ignored if `SSH_KEY` is provided - i.e. the `github.com` SSH key is always added if `SSH_KEY` is provided | +| **SSH_INSECURE_NO_VERIFY_GITHUB_KEY** | `false` | **INSECURE -** If set to `true`, does not verify the fingerprint of the github.com SSH key before adding this. This is not recommended! | +| **SQLFLUFF_CONFIG_FILE** | `/.sqlfluff` | Filename for [SQLFLUFF configuration](https://docs.sqlfluff.com/en/stable/configuration.html) (ex: `/.sqlfluff`, `pyproject.toml`) | +| **SUPER_LINTER_OUTPUT_DIRECTORY_NAME** | `super-linter-output` | Name of the directory where super-linter saves its output. | +| **SUPER_LINTER_SUMMARY_FILE_NAME** | `super-linter-summary.md` | Name of the file where to save the summary output. For more information, see [Summary outputs](#summary-outputs). | +| **SUPPRESS_FILE_TYPE_WARN** | `false` | If set to `true`, will hide warning messages about files without their proper extensions. Default is `false` | +| **SUPPRESS_POSSUM** | `false` | If set to `true`, will hide the ASCII possum at top of log output. Default is `false` | +| **TERRAFORM_TERRASCAN_CONFIG_FILE** | `terrascan.toml` | Filename for [terrascan configuration](https://github.com/accurics/terrascan) (ex: `terrascan.toml`) | +| **TERRAFORM_TFLINT_CONFIG_FILE** | `.tflint.hcl` | Filename for [tfLint configuration](https://github.com/terraform-linters/tflint) (ex: `.tflint.hcl`) | +| **TYPESCRIPT_ES_CONFIG_FILE** | `.eslintrc.yml` | Filename for [ESLint configuration](https://eslint.org/docs/user-guide/configuring#configuration-file-formats) (ex: `.eslintrc.yml`, `.eslintrc.json`) | +| **TYPESCRIPT_STANDARD_TSCONFIG_FILE** | `${DEFAULT_WORKSPACE}/tsconfig.json` | Path to the [TypeScript project configuration](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) in [ts-standard](https://github.com/standard/ts-standard). The path is relative to `DEFAULT_WORKSPACE` | +| **USE_FIND_ALGORITHM** | `false` | By default, we use `git diff` to find all files in the workspace and what has been updated, this would enable the Linux `find` method instead to find all files to lint | +| **VALIDATE_ALL_CODEBASE** | `true` | Will parse the entire repository and find all files to validate across all types. **NOTE:** When set to `false`, only **new** or **edited** files will be parsed for validation. | +| **VALIDATE_ANSIBLE** | `true` | Flag to enable or disable the linting process of the Ansible language. | +| **VALIDATE_ARM** | `true` | Flag to enable or disable the linting process of the ARM language. | +| **VALIDATE_BASH** | `true` | Flag to enable or disable the linting process of the Bash language. | +| **VALIDATE_BASH_EXEC** | `true` | Flag to enable or disable the linting process of the Bash language to validate if file is stored as executable. | +| **VALIDATE_CPP** | `true` | Flag to enable or disable the linting process of the C++ language. | +| **VALIDATE_CHECKOV** | `true` | Flag to enable or disable the linting process with Checkov | +| **VALIDATE_CLANG_FORMAT** | `true` | Flag to enable or disable the linting process of the C++/C language with clang-format. | +| **VALIDATE_CLOJURE** | `true` | Flag to enable or disable the linting process of the Clojure language. | +| **VALIDATE_CLOUDFORMATION** | `true` | Flag to enable or disable the linting process of the AWS Cloud Formation language. | +| **VALIDATE_COFFEESCRIPT** | `true` | Flag to enable or disable the linting process of the CoffeeScript language. | +| **VALIDATE_CSHARP** | `true` | Flag to enable or disable the linting process of the C# language. | +| **VALIDATE_CSS** | `true` | Flag to enable or disable the linting process of the CSS, Sass, and SCSS files. | +| **VALIDATE_CSS_PRETTIER** | `true` | Flag to enable or disable checking the formatting of CSS, Sass, and SCSS files with Prettier. | +| **VALIDATE_DART** | `true` | Flag to enable or disable the linting process of the Dart language. | +| **VALIDATE_DOCKERFILE_HADOLINT** | `true` | Flag to enable or disable the linting process of the Docker language. | +| **VALIDATE_EDITORCONFIG** | `true` | Flag to enable or disable the linting process with the EditorConfig. | +| **VALIDATE_ENV** | `true` | Flag to enable or disable the linting process of the ENV language. | +| **VALIDATE_GHERKIN** | `true` | Flag to enable or disable the linting process of the Gherkin language. | +| **VALIDATE_GITHUB_ACTIONS** | `true` | Flag to enable or disable the linting process of the GitHub Actions. | +| **VALIDATE_GITLEAKS** | `true` | Flag to enable or disable the linting process of the secrets. | +| **VALIDATE_GO** | `true` | Flag to enable or disable the linting process of the individual Golang files. Set this to `false` if you want to lint Go modules. See the `VALIDATE_GO_MODULES` variable. | +| **VALIDATE_GO_MODULES** | `true` | Flag to enable or disable the linting process of Go modules. Super-linter considers a directory to be a Go module if it contains a file named `go.mod`. | +| **VALIDATE_GO_RELEASER** | `true` | Flag to enable or disable the linting process of the GoReleaser config file. | +| **VALIDATE_GRAPHQL_PRETTIER** | `true` | Flag to enable or disable checking the formatting of GraphQL files with Prettier. | +| **VALIDATE_GOOGLE_JAVA_FORMAT** | `true` | Flag to enable or disable the linting process of the Java language. (Utilizing: google-java-format) | +| **VALIDATE_GROOVY** | `true` | Flag to enable or disable the linting process of the language. | +| **VALIDATE_HTML** | `true` | Flag to enable or disable the linting process of the HTML language. | +| **VALIDATE_HTML_PRETTIER** | `true` | Flag to enable or disable checking the formatting of HTML files with Prettier. | +| **VALIDATE_JAVA** | `true` | Flag to enable or disable the linting process of the Java language. (Utilizing: checkstyle) | +| **VALIDATE_JAVASCRIPT_ES** | `true` | Flag to enable or disable the linting process of the JavaScript language. (Utilizing: ESLint) | +| **VALIDATE_JAVASCRIPT_PRETTIER** | `true` | Flag to enable or disable checking the formatting of JavaScript files with Prettier. | +| **VALIDATE_JAVASCRIPT_STANDARD** | `true` | Flag to enable or disable the linting process of the JavaScript language. (Utilizing: standard) | +| **VALIDATE_JSCPD** | `true` | Flag to enable or disable JSCPD. | +| **VALIDATE_JSON** | `true` | Flag to enable or disable the linting process of the JSON language. | +| **VALIDATE_JSON_PRETTIER** | `true` | Flag to enable or disable checking the formatting of JSON files with Prettier. | +| **VALIDATE_JSONC** | `true` | Flag to enable or disable the linting process of the JSONC and JSON5 languages. | +| **VALIDATE_JSX** | `true` | Flag to enable or disable the linting process for jsx files (Utilizing: ESLint) | +| **VALIDATE_JSX_PRETTIER** | `true` | Flag to enable or disable checking the formatting of JSX files with Prettier. | +| **VALIDATE_KOTLIN** | `true` | Flag to enable or disable the linting process of the Kotlin language. | +| **VALIDATE_KUBERNETES_KUBECONFORM** | `true` | Flag to enable or disable the linting process of Kubernetes descriptors with Kubeconform | +| **VALIDATE_LATEX** | `true` | Flag to enable or disable the linting process of the LaTeX language. | +| **VALIDATE_LUA** | `true` | Flag to enable or disable the linting process of the language. | +| **VALIDATE_MARKDOWN** | `true` | Flag to enable or disable the linting process of the Markdown language. | +| **VALIDATE_MARKDOWN_PRETTIER** | `true` | Flag to enable or disable checking the formatting of Markdown files with Prettier. | +| **VALIDATE_NATURAL_LANGUAGE** | `true` | Flag to enable or disable the linting process of the natural language. | +| **VALIDATE_OPENAPI** | `true` | Flag to enable or disable the linting process of the OpenAPI language. | +| **VALIDATE_PERL** | `true` | Flag to enable or disable the linting process of the Perl language. | +| **VALIDATE_PHP** | `true` | Flag to enable or disable the linting process of the PHP language. (Utilizing: PHP built-in linter) (keep for backward compatibility) | +| **VALIDATE_PHP_BUILTIN** | `true` | Flag to enable or disable the linting process of the PHP language. (Utilizing: PHP built-in linter) | +| **VALIDATE_PHP_PHPCS** | `true` | Flag to enable or disable the linting process of the PHP language. (Utilizing: PHP CodeSniffer) | +| **VALIDATE_PHP_PHPSTAN** | `true` | Flag to enable or disable the linting process of the PHP language. (Utilizing: PHPStan) | +| **VALIDATE_PHP_PSALM** | `true` | Flag to enable or disable the linting process of the PHP language. (Utilizing: PSalm) | +| **VALIDATE_POWERSHELL** | `true` | Flag to enable or disable the linting process of the Powershell language. | +| **VALIDATE_PROTOBUF** | `true` | Flag to enable or disable the linting process of the Protobuf language. | +| **VALIDATE_PYTHON** | `true` | Flag to enable or disable the linting process of the Python language. (Utilizing: pylint) (keep for backward compatibility) | +| **VALIDATE_PYTHON_BLACK** | `true` | Flag to enable or disable the linting process of the Python language. (Utilizing: black) | +| **VALIDATE_PYTHON_FLAKE8** | `true` | Flag to enable or disable the linting process of the Python language. (Utilizing: flake8) | +| **VALIDATE_PYTHON_ISORT** | `true` | Flag to enable or disable the linting process of the Python language. (Utilizing: isort) | +| **VALIDATE_PYTHON_MYPY** | `true` | Flag to enable or disable the linting process of the Python language. (Utilizing: mypy) | +| **VALIDATE_PYTHON_PYLINT** | `true` | Flag to enable or disable the linting process of the Python language. (Utilizing: pylint) | +| **VALIDATE_PYTHON_RUFF** | `true` | Flag to enable or disable the linting process of the Python language. (Utilizing: ruff) | +| **VALIDATE_R** | `true` | Flag to enable or disable the linting process of the R language. | +| **VALIDATE_RAKU** | `true` | Flag to enable or disable the linting process of the Raku language. | +| **VALIDATE_RENOVATE** | `true` | Flag to enable or disable the linting process of the Renovate configuration files. | +| **VALIDATE_RUBY** | `true` | Flag to enable or disable the linting process of the Ruby language. | +| **VALIDATE_RUST_2015** | `true` | Flag to enable or disable the linting process of the Rust language. (edition: 2015) | +| **VALIDATE_RUST_2018** | `true` | Flag to enable or disable the linting process of Rust language. (edition: 2018) | +| **VALIDATE_RUST_2021** | `true` | Flag to enable or disable the linting process of Rust language. (edition: 2021) | +| **VALIDATE_RUST_CLIPPY** | `true` | Flag to enable or disable the clippy linting process of Rust language. | +| **VALIDATE_SCALAFMT** | `true` | Flag to enable or disable the linting process of Scala language. (Utilizing: scalafmt --test) | +| **VALIDATE_SHELL_SHFMT** | `true` | Flag to enable or disable the linting process of Shell scripts. (Utilizing: shfmt) | +| **VALIDATE_SNAKEMAKE_LINT** | `true` | Flag to enable or disable the linting process of Snakefiles. (Utilizing: snakemake --lint) | +| **VALIDATE_SNAKEMAKE_SNAKEFMT** | `true` | Flag to enable or disable the linting process of Snakefiles. (Utilizing: snakefmt) | +| **VALIDATE_STATES** | `true` | Flag to enable or disable the linting process for AWS States Language. | +| **VALIDATE_SQLFLUFF** | `true` | Flag to enable or disable the linting process of the SQL language. (Utilizing: sqlfuff) | +| **VALIDATE_TEKTON** | `true` | Flag to enable or disable the linting process of the Tekton language. | +| **VALIDATE_TERRAFORM_FMT** | `true` | Flag to enable or disable checking the formatting process of the Terraform files. | +| **VALIDATE_TERRAFORM_TERRASCAN** | `true` | Flag to enable or disable the linting process of the Terraform language for security related issues. | +| **VALIDATE_TERRAFORM_TFLINT** | `true` | Flag to enable or disable the linting process of the Terraform language. (Utilizing tflint) | +| **VALIDATE_TERRAGRUNT** | `true` | Flag to enable or disable the linting process for Terragrunt files. | +| **VALIDATE_TSX** | `true` | Flag to enable or disable the linting process for tsx files (Utilizing: ESLint) | +| **VALIDATE_TYPESCRIPT_ES** | `true` | Flag to enable or disable the linting process of the TypeScript language. (Utilizing: ESLint) | +| **VALIDATE_TYPESCRIPT_PRETTIER** | `true` | Flag to enable or disable checking the formatting of TypeScript files with Prettier. | +| **VALIDATE_TYPESCRIPT_STANDARD** | `true` | Flag to enable or disable the linting process of the TypeScript language. (Utilizing: ts-standard) | +| **VALIDATE_VUE_PRETTIER** | `true` | Flag to enable or disable checking the formatting of Vue files with Prettier. | +| **VALIDATE_XML** | `true` | Flag to enable or disable the linting process of the XML language. | +| **VALIDATE_YAML** | `true` | Flag to enable or disable the linting process of the YAML language. | +| **VALIDATE_YAML_PRETTIER** | `true` | Flag to enable or disable checking the formatting of YAML files with Prettier. | +| **YAML_CONFIG_FILE** | `.yaml-lint.yml` | Filename for [Yamllint configuration](https://yamllint.readthedocs.io/en/stable/configuration.html) (ex: `.yaml-lint.yml`, `.yamllint.yml`) | +| **YAML_ERROR_ON_WARNING** | `false` | Flag to enable or disable the error on warning for Yamllint. | The `VALIDATE_[LANGUAGE]` variables work as follows: @@ -416,9 +431,9 @@ Super-linter supports the following locations to deliver fixes: files by yourself. For example: - If you're running Super-linter in your CI environment, such as GitHub - Actions, you can commit and push changes as part of your workflow. + Actions, you can commit and push changes as part of your workflow. - If you're running Super-linter locally, you can commit the changes as you - would with any other change in your working directory. + would with any other change in your working directory. ### Fix mode for ansible-lint @@ -470,6 +485,7 @@ For example: - Do not lint JavaScript files inside test folder: `FILTER_REGEX_EXCLUDE: .*test/.*.js` + Additionally, if you set `IGNORE_GENERATED_FILES` to `true`, super-linter ignores any file with `@generated` string in it, unless the file also has `@not-generated` marker. For example, super-linter considers a file @@ -523,8 +539,8 @@ For example, you can configure this private key as an and access it with the `secrets` parameter from your GitHub Actions workflow: ```yaml - env: - SSH_KEY: ${{ secrets.SSH_PRIVATE_KEY }} +env: + SSH_KEY: ${{ secrets.SSH_PRIVATE_KEY }} ``` If you need to inject a SSL certificate into the trust store, you can use the @@ -532,8 +548,8 @@ If you need to inject a SSL certificate into the trust store, you can use the path to the files that contains a CA that can be used to validate the certificate: ```yaml - env: - SSL_CERT_SECRET: ${{ secrets.ROOT_CA }} +env: + SSL_CERT_SECRET: ${{ secrets.ROOT_CA }} ``` ## Outputs diff --git a/TEMPLATES/.ansible-lint.yml b/TEMPLATES/.ansible-lint.yml index f2c7b9e7..441fae65 100644 --- a/TEMPLATES/.ansible-lint.yml +++ b/TEMPLATES/.ansible-lint.yml @@ -29,14 +29,14 @@ quiet: true # Tags to skip # ################ skip_list: - - 'empty-string-compare' # Allow compare to empty string - - '204' # Allow string length greater than 160 chars - - 'no-changed-when' # False positives for running command shells - - 'command-instead-of-module' # Allow git commands for push, add, etc... - - 'command-instead-of-shell' # Allow use of shell when you want - - 'no-handler' # Allow step to run like handler - - 'unnamed-task' # Allow tasks without a name - - 'yaml' # Disable YAML linting since it's done by yamllint + - "empty-string-compare" # Allow compare to empty string + - "204" # Allow string length greater than 160 chars + - "no-changed-when" # False positives for running command shells + - "command-instead-of-module" # Allow git commands for push, add, etc... + - "command-instead-of-shell" # Allow use of shell when you want + - "no-handler" # Allow step to run like handler + - "unnamed-task" # Allow tasks without a name + - "yaml" # Disable YAML linting since it's done by yamllint ################## # Tags to follow # diff --git a/TEMPLATES/.checkov.yaml b/TEMPLATES/.checkov.yaml index 1d8a7a61..f6afd1fc 100644 --- a/TEMPLATES/.checkov.yaml +++ b/TEMPLATES/.checkov.yaml @@ -1,4 +1,3 @@ --- # Don't report passed checks in output quiet: true -... diff --git a/TEMPLATES/.eslintrc.yml b/TEMPLATES/.eslintrc.yml index d9c2486f..d0d1d6d2 100644 --- a/TEMPLATES/.eslintrc.yml +++ b/TEMPLATES/.eslintrc.yml @@ -8,13 +8,12 @@ ignorePatterns: - "!.*" - "**/node_modules/.*" -parser: '@typescript-eslint/parser' +parser: "@typescript-eslint/parser" plugins: - - '@typescript-eslint' + - "@typescript-eslint" overrides: - # JSON files - files: - "*.json" diff --git a/TEMPLATES/.groovylintrc.json b/TEMPLATES/.groovylintrc.json index 474f8151..16700af2 100644 --- a/TEMPLATES/.groovylintrc.json +++ b/TEMPLATES/.groovylintrc.json @@ -1,65 +1,65 @@ { - "extends": "recommended", - "rules": { - "CatchException": { - "enabled": false - }, - "CatchThrowable": { - "enabled": false - }, - "ClassJavadoc": { - "enabled": false - }, - "ClosureAsLastMethodParameter": { - "enabled": false - }, - "DuplicateNumberLiteral": { - "enabled": false - }, - "DuplicateStringLiteral": { - "enabled": false - }, - "FieldTypeRequired": { - "enabled": false - }, - "JavaIoPackageAccess": { - "enabled": false - }, - "MethodParameterTypeRequired": { - "enabled": false - }, - "MethodSize": { - "enabled": false - }, - "NoDef": { - "enabled": false - }, - "PrintStackTrace": { - "enabled": false - }, - "PropertyName": { - "enabled": false - }, - "SpaceAroundMapEntryColon": { - "enabled": false - }, - "SystemExit": { - "enabled": false - }, - "UnnecessaryGetter": { - "enabled": false - }, - "UnnecessaryObjectReferences": { - "enabled": false - }, - "UnnecessarySetter": { - "enabled": false - }, - "VariableName": { - "enabled": false - }, - "VariableTypeRequired": { - "enabled": false - } + "extends": "recommended", + "rules": { + "CatchException": { + "enabled": false + }, + "CatchThrowable": { + "enabled": false + }, + "ClassJavadoc": { + "enabled": false + }, + "ClosureAsLastMethodParameter": { + "enabled": false + }, + "DuplicateNumberLiteral": { + "enabled": false + }, + "DuplicateStringLiteral": { + "enabled": false + }, + "FieldTypeRequired": { + "enabled": false + }, + "JavaIoPackageAccess": { + "enabled": false + }, + "MethodParameterTypeRequired": { + "enabled": false + }, + "MethodSize": { + "enabled": false + }, + "NoDef": { + "enabled": false + }, + "PrintStackTrace": { + "enabled": false + }, + "PropertyName": { + "enabled": false + }, + "SpaceAroundMapEntryColon": { + "enabled": false + }, + "SystemExit": { + "enabled": false + }, + "UnnecessaryGetter": { + "enabled": false + }, + "UnnecessaryObjectReferences": { + "enabled": false + }, + "UnnecessarySetter": { + "enabled": false + }, + "VariableName": { + "enabled": false + }, + "VariableTypeRequired": { + "enabled": false } + } } diff --git a/TEMPLATES/.jscpd.json b/TEMPLATES/.jscpd.json index 043a7ce1..0f151335 100644 --- a/TEMPLATES/.jscpd.json +++ b/TEMPLATES/.jscpd.json @@ -1,11 +1,6 @@ { "threshold": 0, - "reporters": [ - "consoleFull" - ], - "ignore": [ - "**/__snapshots__/**", - "**/node_modules/**" - ], + "reporters": ["consoleFull"], + "ignore": ["**/__snapshots__/**", "**/node_modules/**"], "absolute": true } diff --git a/TEMPLATES/.markdown-lint.yml b/TEMPLATES/.markdown-lint.yml index 2d83867e..f4abcce9 100644 --- a/TEMPLATES/.markdown-lint.yml +++ b/TEMPLATES/.markdown-lint.yml @@ -18,18 +18,18 @@ ############### # Rules by id # ############### -MD004: false # Unordered list style +MD004: false # Unordered list style MD007: - indent: 2 # Unordered list indentation + indent: 2 # Unordered list indentation MD013: - line_length: 400 # Line length 80 is far too short + line_length: 400 # Line length 80 is far too short MD026: - punctuation: ".,;:!。,;:" # List of not allowed -MD029: false # Ordered list item prefix -MD033: false # Allow inline HTML -MD036: false # Emphasis used instead of a heading + punctuation: ".,;:!。,;:" # List of not allowed +MD029: false # Ordered list item prefix +MD033: false # Allow inline HTML +MD036: false # Emphasis used instead of a heading ################# # Rules by tags # ################# -blank_lines: false # Error on blank lines +blank_lines: false # Error on blank lines diff --git a/TEMPLATES/.openapirc.yml b/TEMPLATES/.openapirc.yml index fdf641e1..5c46a0dd 100644 --- a/TEMPLATES/.openapirc.yml +++ b/TEMPLATES/.openapirc.yml @@ -1,5 +1,4 @@ --- - ########################## ########################## ## OpenAPI Linter rules ## diff --git a/TEMPLATES/actionlint.yml b/TEMPLATES/actionlint.yml index 91da2a75..ed97d539 100644 --- a/TEMPLATES/actionlint.yml +++ b/TEMPLATES/actionlint.yml @@ -1,2 +1 @@ --- -... diff --git a/action.yml b/action.yml index caba22cf..a6aeb8ee 100644 --- a/action.yml +++ b/action.yml @@ -1,12 +1,12 @@ --- -name: 'Super-Linter' -author: 'Super-linter contributors' -description: 'Super-linter is a ready-to-run collection of linters and code analyzers, to help validate your source code.' +name: "Super-Linter" +author: "Super-linter contributors" +description: "Super-linter is a ready-to-run collection of linters and code analyzers, to help validate your source code." runs: - using: 'docker' - image: 'docker://ghcr.io/super-linter/super-linter:v6.9.0' # x-release-please-version + using: "docker" + image: "docker://ghcr.io/super-linter/super-linter:v6.9.0" # x-release-please-version branding: - icon: 'check-square' - color: 'white' + icon: "check-square" + color: "white" # You can view https://github.com/super-linter/super-linter#environment-variables # to see a comprehensive list of all environment variables that can be passed diff --git a/docs/add-new-linter.md b/docs/add-new-linter.md index be2d8c2c..154d0d08 100644 --- a/docs/add-new-linter.md +++ b/docs/add-new-linter.md @@ -1,6 +1,6 @@ # How to add support for a new tool to super-linter -If you want to propose a *Pull Request* to add **new** language support or a +If you want to propose a _Pull Request_ to add **new** language support or a new tool, it should include: - Update documentation: @@ -9,14 +9,14 @@ new tool, it should include: 1. Create the `test/linters/` directory. 2. Provide at least one test case with a file that is supposed to pass validation, - with the right file extension if needed: `test/linters//-good` + with the right file extension if needed: `test/linters//-good` 3. Provide at least one test case with a file that is supposed to fail validation, - with the right file extension if needed: `test/linters//-bad`. - If the linter supports fix mode, the test case supposed to fail validation - should only contain violations that the fix mode can automatically fix. - Avoid test cases that fail only because of syntax errors, when possible. + with the right file extension if needed: `test/linters//-bad`. + If the linter supports fix mode, the test case supposed to fail validation + should only contain violations that the fix mode can automatically fix. + Avoid test cases that fail only because of syntax errors, when possible. 4. If the linter supports check-only mode or fix mode, add the `` - to the `LANGUAGES_WITH_FIX_MODE` array in `test/testUtils.sh` + to the `LANGUAGES_WITH_FIX_MODE` array in `test/testUtils.sh` - Update the test suite to check for installed packages, the commands that your new tool needs in the `PATH`, and the expected version command: @@ -34,60 +34,60 @@ new tool, it should include: 1. Create a directory named `dependencies/`. 2. Create a `dependencies//build.gradle` file with the following contents: - ```gradle - repositories { - mavenLocal() - mavenCentral() - } + ```gradle + repositories { + mavenLocal() + mavenCentral() + } - // Hold this dependency here so we can get automated updates using DependaBot - dependencies { - implementation 'your:dependency-here:version' - } + // Hold this dependency here so we can get automated updates using DependaBot + dependencies { + implementation 'your:dependency-here:version' + } - group 'com.github.super-linter' - version '1.0.0-SNAPSHOT' - ``` + group 'com.github.super-linter' + version '1.0.0-SNAPSHOT' + ``` 3. Update the `dependencies` section in `dependencies//build.gradle` to - install your dependencies. + install your dependencies. 4. Add the following content to the `Dockerfile`: - ```dockerfile - COPY scripts/install-.sh / - RUN --mount=type=secret,id=GITHUB_TOKEN /.sh && rm -rf /.sh - ``` + ```dockerfile + COPY scripts/install-.sh / + RUN --mount=type=secret,id=GITHUB_TOKEN /.sh && rm -rf /.sh + ``` 5. Create `scripts/install-.sh`, and implement the logic to install your tool. - You get the version of a dependency from `build.gradle`. Example: + You get the version of a dependency from `build.gradle`. Example: - ```sh - GOOGLE_JAVA_FORMAT_VERSION="$(grep <"google-java-format/build.gradle" "google-java-format" | awk -F ':' '{print $3}' | tr -d "'")" - ``` + ```sh + GOOGLE_JAVA_FORMAT_VERSION="$(grep <"google-java-format/build.gradle" "google-java-format" | awk -F ':' '{print $3}' | tr -d "'")" + ``` 6. Add the new to DependaBot configuration: - ```yaml - - package-ecosystem: "gradle" - directory: "/dependencies/" - schedule: - interval: "weekly" - open-pull-requests-limit: 10 - ``` + ```yaml + - package-ecosystem: "gradle" + directory: "/dependencies/" + schedule: + interval: "weekly" + open-pull-requests-limit: 10 + ``` - If there is a container (Docker) image: 1. Add a new build stage to get the image: - ```dockerfile - FROM your/image:version as - ``` + ```dockerfile + FROM your/image:version as + ``` 1. Copy the necessary binaries and libraries to the relevant locations. Example: - ```sh - COPY --from= /usr/local/bin/ /usr/bin/ - ``` + ```sh + COPY --from= /usr/local/bin/ /usr/bin/ + ``` - Configure the new tool: @@ -102,9 +102,11 @@ new tool, it should include: item as ``. - Linter configuration: + - Create a new minimal configuration file in the `TEMPLATES` directory with the same name as the default configuration filename. Example: `TEMPLATES/.ruff.toml`. - `lib/globals/linterRules.sh`: + - If the new linter accepts a configuration files from the command line, define a new variable: `_FILE_NAME="${_CONFIG_FILE:-"default-config-file-name.conf"}"` @@ -116,13 +118,13 @@ new tool, it should include: `_COMMAND_ARGS` and add it to the command if the configuration provides it. Example: - ```bash - _COMMAND_ARGS="${_COMMAND_ARGS:-""}" - if [ -n "${_COMMAND_ARGS:-}" ]; then - export _COMMAND_ARGS - LINTER_COMMANDS_ARRAY_+=("${_COMMAND_ARGS}") - fi - ``` + ```bash + _COMMAND_ARGS="${_COMMAND_ARGS:-""}" + if [ -n "${_COMMAND_ARGS:-}" ]; then + export _COMMAND_ARGS + LINTER_COMMANDS_ARRAY_+=("${_COMMAND_ARGS}") + fi + ``` - Define the command to invoke the new linter: diff --git a/docs/release-process.md b/docs/release-process.md index 66777830..056fbc04 100644 --- a/docs/release-process.md +++ b/docs/release-process.md @@ -12,9 +12,9 @@ releases, do the following: 1. Run: - ```shell - make release-please-dry-run - ``` + ```shell + make release-please-dry-run + ``` This command also runs as part of the [CI process](../.github/workflows/ci.yml). diff --git a/docs/run-linter-locally.md b/docs/run-linter-locally.md index 0180e459..e95f7f13 100644 --- a/docs/run-linter-locally.md +++ b/docs/run-linter-locally.md @@ -38,7 +38,7 @@ super-linter: stage: Super-linter # Use a specific Super-linter version instead of latest for more reproducible builds image: super-linter/super-linter:latest - script: [ "true" ] + script: ["true"] variables: RUN_LOCAL: "true" DEFAULT_WORKSPACE: $CI_PROJECT_DIR @@ -58,29 +58,29 @@ them accordingly: 1. Create a configuration file for super-linter `super-linter.env`. For example: - ```bash - VALIDATE_ALL_CODEBASE=true - ``` + ```bash + VALIDATE_ALL_CODEBASE=true + ``` 1. Load the super-linter configuration file when running outside GitHub Actions: - ```bash - docker run --rm \ - -e RUN_LOCAL=true \ - --env-file ".github/super-linter.env" \ - -v "$(pwd)":/tmp/lint \ - ghcr.io/super-linter/super-linter:latest - ``` + ```bash + docker run --rm \ + -e RUN_LOCAL=true \ + --env-file ".github/super-linter.env" \ + -v "$(pwd)":/tmp/lint \ + ghcr.io/super-linter/super-linter:latest + ``` 1. Load the super-linter configuration file when running in GitHub Actions by - adding the following step to the GitHub Actions workflow that runs - super-linter, after checking out your repository and before running - super-linter: + adding the following step to the GitHub Actions workflow that runs + super-linter, after checking out your repository and before running + super-linter: - ```yaml - - name: Load super-linter configuration - run: cat .github/super-linter.env >> "$GITHUB_ENV" - ``` + ```yaml + - name: Load super-linter configuration + run: cat .github/super-linter.env >> "$GITHUB_ENV" + ``` ## Build the container image and run the test suite locally @@ -88,20 +88,20 @@ To run the build and test process locally, in the top-level super-linter directory, do the following: 1. [Create a fine-grained GitHub personal access token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#creating-a-fine-grained-personal-access-token). - The token only needs to have public/read-only access. + The token only needs to have public/read-only access. 1. Store the generated personal access token in a file in the top-level - directory (This file is ignored by Git). + directory (This file is ignored by Git). - ```bash - echo "github_pat_XXXXXX_XXXXXX" > .github-personal-access-token - ``` + ```bash + echo "github_pat_XXXXXX_XXXXXX" > .github-personal-access-token + ``` 1. Run the build process: - ```bash - . ./scripts/build-metadata.sh && make - ``` + ```bash + . ./scripts/build-metadata.sh && make + ``` To avoid invalidating the build cache because of changing values of build arguments, you can set build arguments to arbitrary values before running diff --git a/slim/action.yml b/slim/action.yml index f9b57d1c..863e8c6c 100644 --- a/slim/action.yml +++ b/slim/action.yml @@ -1,12 +1,12 @@ --- -name: 'Super-Linter slim' -author: 'Super-linter contributors' -description: 'Super-linter is a ready-to-run collection of linters and code analyzers, to help validate your source code.' +name: "Super-Linter slim" +author: "Super-linter contributors" +description: "Super-linter is a ready-to-run collection of linters and code analyzers, to help validate your source code." runs: - using: 'docker' - image: 'docker://ghcr.io/super-linter/super-linter:slim-v6.9.0' # x-release-please-version + using: "docker" + image: "docker://ghcr.io/super-linter/super-linter:slim-v6.9.0" # x-release-please-version branding: - icon: 'check-square' - color: 'white' + icon: "check-square" + color: "white" # You can view https://github.com/super-linter/super-linter#environment-variables # to see a comprehensive list of all environment variables that can be passed diff --git a/test/data/github-event/github-event-push.json b/test/data/github-event/github-event-push.json index 64619229..09cfe51a 100644 --- a/test/data/github-event/github-event-push.json +++ b/test/data/github-event/github-event-push.json @@ -178,13 +178,7 @@ "svn_url": "https://github.com/super-linter/super-linter", "tags_url": "https://api.github.com/repos/super-linter/super-linter/tags", "teams_url": "https://api.github.com/repos/super-linter/super-linter/teams", - "topics": [ - "actions", - "ci", - "hacktoberfest", - "linter", - "quality-check" - ], + "topics": ["actions", "ci", "hacktoberfest", "linter", "quality-check"], "trees_url": "https://api.github.com/repos/super-linter/super-linter/git/trees{/sha}", "updated_at": "2024-01-04T16:38:53Z", "url": "https://github.com/super-linter/super-linter", diff --git a/test/linters-config/fix-mode/.ansible-lint.yml b/test/linters-config/fix-mode/.ansible-lint.yml index bcbfc8c4..217ded9a 100644 --- a/test/linters-config/fix-mode/.ansible-lint.yml +++ b/test/linters-config/fix-mode/.ansible-lint.yml @@ -6,4 +6,3 @@ parseable: true quiet: true use_default_rules: true verbosity: 1 -... diff --git a/test/linters-config/fix-mode/.eslintrc.yml b/test/linters-config/fix-mode/.eslintrc.yml index 31282eb8..72904817 100644 --- a/test/linters-config/fix-mode/.eslintrc.yml +++ b/test/linters-config/fix-mode/.eslintrc.yml @@ -12,10 +12,10 @@ ignorePatterns: - "!.*" - "**/node_modules/.*" -parser: '@typescript-eslint/parser' +parser: "@typescript-eslint/parser" plugins: - - '@typescript-eslint' + - "@typescript-eslint" # Don't set the jsonSyntax parser option for JSON, JSON5, and JSONC # so we can use eslint-plugin-jsonc to automatically fix issues @@ -41,4 +41,3 @@ overrides: - "*.tsx" extends: - plugin:react/recommended -... diff --git a/test/linters-config/fix-mode/.golangci.yml b/test/linters-config/fix-mode/.golangci.yml index e6dd6cad..f6210cb3 100644 --- a/test/linters-config/fix-mode/.golangci.yml +++ b/test/linters-config/fix-mode/.golangci.yml @@ -2,4 +2,3 @@ linters: enable: - gofmt -...