https://github.com/super-linter/super-linter
Combination of multiple linters to run as a GitHub Action or standalone
https://github.com/super-linter/super-linter
actions ci code-quality code-quality-analyzer linter quality-check super-linter
Last synced: 4 months ago
JSON representation
Combination of multiple linters to run as a GitHub Action or standalone
- Host: GitHub
- URL: https://github.com/super-linter/super-linter
- Owner: super-linter
- License: mit
- Created: 2019-10-21T13:56:50.000Z (over 6 years ago)
- Default Branch: main
- Last Pushed: 2025-05-06T11:20:14.000Z (about 1 year ago)
- Last Synced: 2025-05-06T19:52:08.416Z (about 1 year ago)
- Topics: actions, ci, code-quality, code-quality-analyzer, linter, quality-check, super-linter
- Language: Shell
- Homepage: https://github.com/super-linter/super-linter
- Size: 32.4 MB
- Stars: 9,820
- Watchers: 295
- Forks: 1,008
- Open Issues: 52
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-starred-test - super-linter/super-linter - Combination of multiple linters to run as a GitHub Action or standalone (Shell)
- awesome-ccamel - super-linter/super-linter - Combination of multiple linters to run as a GitHub Action or standalone (Shell)
- jimsghstars - super-linter/super-linter - Combination of multiple linters to run as a GitHub Action or standalone (Shell)
- my-awesome-starred - super-linter/super-linter - Combination of multiple linters to run as a GitHub Action or standalone (Shell)
README
# Super-Linter
Super-linter is a ready-to-run collection of linters and code analyzers, to help
validate and fix your source code.
The goal of super-linter is to help you establish best practices and consistent
formatting across multiple programming languages, and ensure developers are
adhering to those conventions.
Super-linter analyzes source code files using several tools, and reports the
issues that those tools find as console output, and as
[GitHub Actions status checks](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/collaborating-on-repositories-with-code-quality-features/about-status-checks).
You can also
[run super-linter outside GitHub Actions](#run-super-linter-outside-github-actions).
Super-linter can also help you
[fix linting and formatting issues](#fix-linting-and-formatting-issues).
Super-linter is licensed under an
[MIT License](https://github.com/super-linter/super-linter/blob/main/LICENSE).
[](https://github.com/marketplace/actions/super-linter)
Here are some notable Super-linter features:
- **MIT License**: Super-linter is licensed under a [MIT License](LICENSE).
- **Independent project**: Super-linter is maintained by a team of independent
developers and is not commercially backed by any entity that might influence
the course of the project.
- **Widely used**: Super-linter is the
[most widely used](https://github.com/super-linter/super-linter/network/dependents)
and [forked](https://github.com/super-linter/super-linter/forks) project of
this kind.
- **Runs linters in parallel**: Since `v6`, Super-linter parallelizes running
all the included linters, leading to scanning massive code repositories in
seconds.
- **Highly curated set of linters**: Avoid including linters that implement
overlapping checks, reducing bloat, scanning times, and container image size.
- **Run on GitHub Actions or other environments**: Super-linter runs
[on GitHub Actions](#get-started) and
[other runtime environments](#run-using-a-container-runtime-engine), with the
only dependency of an OCI-compatible container runtime engine, such as Docker.
- **Lean codebase**: Super-linter doesn't reinvent the wheel, and builds on top
of established tools and standards, such as
[GNU Parallel](https://www.gnu.org/software/parallel/).
- **Extensive test suite**: Super-linter includes an extensive test suite that
covers every single linter and analyzer that Super-linter ships.
- **Original design**: to the best of our knowledge, Super-linter is the first
open-source, fully-containerized linting suite. Other projects borrow ideas
and design choices from Super-linter (and we're cool with that :).
## How to contribute
If you would like to help contribute to Super-linter, see
[CONTRIBUTING](https://github.com/super-linter/super-linter/blob/main/.github/CONTRIBUTING.md).
For a guide on how to set up your development environment and contribute to
Super-linter, see the [development guide](docs/DEVELOPMENT.md).
## Supported linters and formatters
Super-linter supports the following tools:
| Language | Linters | Formatters |
| ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
| **Ansible** | [ansible-lint](https://github.com/ansible/ansible-lint) | See YAML and Python formatters |
| **Amazon States Language** | [ASL Validator](https://github.com/ChristopheBougere/asl-validator) | See JSON formatters |
| **Astro** | [Biome](https://biomejs.dev/) | [Biome](https://biomejs.dev/) |
| **AWS CloudFormation templates** | [AWS CloudFormation Linter (cfn-lint)](https://github.com/aws-cloudformation/cfn-lint), [Checkov](https://www.checkov.io/), [Trivy](https://trivy.dev/) | See YAML formatters |
| **Azure Resource Manager (ARM)** | [Azure Resource Manager Template Toolkit (arm-ttk)](https://github.com/azure/arm-ttk), [Checkov](https://www.checkov.io/), [Trivy](https://trivy.dev/) | See JSON formatters |
| **C**, **C++** | [cpp-lint](https://github.com/cpplint/cpplint) | [clang-format](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) |
| **C#** | See Dotnet solutions | [dotnet format whitespace command](https://github.com/dotnet/format) |
| **CSS**, **SCSS**, **Sass** | [stylelint](https://stylelint.io/), [Biome](https://biomejs.dev/) | [Prettier](https://prettier.io/), [Biome](https://biomejs.dev/) |
| **Clojure** | [clj-kondo](https://github.com/borkdude/clj-kondo) | |
| **CoffeeScript** | [coffeelint](https://coffeelint.github.io/) | |
| **Commit messages** | [commitlint](https://commitlint.js.org/) | |
| **Copy/paste detection** | [jscpd](https://github.com/kucherenko/jscpd) | N/A |
| **Dart** | [dart analyze command](https://dart.dev/guides/language/analysis-options) | |
| **Dockerfile** | [Haskell Dockerfile Linter (Hadolint)](https://github.com/hadolint/hadolint), [Checkov](https://www.checkov.io/), [Trivy](https://trivy.dev/) | |
| **Dotnet (.NET) solutions (sln)** | [dotnet format command](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-format): analyzers, style subcommands. | [dotnet format command](https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-format): whitespace subcommand. |
| **EditorConfig** | [editorconfig-checker](https://github.com/editorconfig-checker/editorconfig-checker) | |
| **.env** | [dotenv-linter](https://github.com/dotenv-linter/dotenv-linter) | |
| **Git merge conflict markers** | [Git conflict markers presence in files](https://git-scm.com/docs/git-config#Documentation/git-config.txt-mergeconflictStyle) | N/A |
| **GitHub Actions** | [actionlint](https://github.com/rhysd/actionlint), [zizmor](https://docs.zizmor.sh/) | See YAML formatters |
| **Go** | [golangci-lint](https://github.com/golangci/golangci-lint) | |
| **GoReleaser** | [GoReleaser](https://github.com/goreleaser/goreleaser) | See YAML formatters |
| **GraphQL** | [Biome](https://biomejs.dev/) | [Prettier](https://prettier.io/), [Biome](https://biomejs.dev/) |
| **GritQL** | | [Biome](https://biomejs.dev/) |
| **Groovy** | [npm-groovy-lint](https://github.com/nvuillam/npm-groovy-lint) | |
| **Helm charts** | [Checkov](https://www.checkov.io/) | See YAML formatters |
| **HTML** | [HTMLHint](https://github.com/htmlhint/HTMLHint) | [Prettier](https://prettier.io/), [Biome](https://biomejs.dev/) |
| **Java** | [checkstyle](https://checkstyle.org) | [google-java-format](https://github.com/google/google-java-format) |
| **JavaScript** | [ESLint](https://eslint.org/), [Biome](https://biomejs.dev/) | [Prettier](https://prettier.io/), [Biome](https://biomejs.dev/) |
| **JSON** | [eslint-plugin-jsonc (configured for JSON)](https://www.npmjs.com/package/eslint-plugin-jsonc) (ESLint default), [eslint-plugin-json](https://www.npmjs.com/package/eslint-plugin-json), [Biome](https://biomejs.dev/) | [Prettier](https://prettier.io/), [Biome](https://biomejs.dev/) |
| **JSONC**, **JSON5** | [eslint-plugin-jsonc](https://www.npmjs.com/package/eslint-plugin-jsonc), [Biome](https://biomejs.dev/) | [Prettier](https://prettier.io/), [Biome](https://biomejs.dev/) |
| **JSX**, **TSX** | [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y), [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react), [Biome](https://biomejs.dev/) | [Prettier](https://prettier.io/), [Biome](https://biomejs.dev/) |
| **Jupyter Notebook** | [nbqa](https://nbqa.readthedocs.io/en/latest/index.html) | [nbqa](https://nbqa.readthedocs.io/en/latest/index.html) |
| **Kubernetes** | [Checkov](https://www.checkov.io/), [Trivy](https://trivy.dev/), [kubeconform](https://github.com/yannh/kubeconform) | See YAML formatters |
| **Kotlin** | [ktlint](https://github.com/pinterest/ktlint) | |
| **LaTeX** | [ChkTex](https://www.nongnu.org/chktex/) | |
| **Licenses** | [Trivy](https://trivy.dev/) | N/A |
| **Lua** | [luacheck](https://github.com/luarocks/luacheck) | |
| **Markdown** | [markdownlint](https://github.com/igorshubovych/markdownlint-cli) | [Prettier](https://prettier.io/) |
| **Natural language** | [textlint](https://textlint.github.io/) | N/A |
| **OpenAPI** | [spectral](https://github.com/stoplightio/spectral) | See YAML formatters |
| **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) | |
| **Pre-commit** | [pre-commit](https://pre-commit.com/) | |
| **Protocol Buffers (Protobuf)** | [protolint](https://github.com/yoheimuta/protolint) | |
| **Python3** | [pylint](https://pylint.pycqa.org/), [flake8](https://flake8.pycqa.org/en/latest/), [isort](https://pypi.org/project/isort/), [ruff](https://github.com/astral-sh/ruff) | [black](https://github.com/psf/black) |
| **R** | [lintr](https://github.com/jimhester/lintr) | |
| **Renovate** | [renovate-config-validator](https://docs.renovatebot.com/config-validation/) | See JSON formatters |
| **Ruby** | [RuboCop](https://github.com/rubocop-hq/rubocop) | |
| **Rust** | [Clippy](https://github.com/rust-lang/rust-clippy) | [Rustfmt](https://github.com/rust-lang/rustfmt) |
| **Scala** | | [scalafmt](https://github.com/scalameta/scalafmt) |
| **Software bill of materials (SBOM)** | [Trivy](https://trivy.dev/) | N/A |
| **Secrets** | [GitLeaks](https://github.com/zricethezav/gitleaks), [Trivy](https://trivy.dev/) | N/A |
| **Shell** | [ShellCheck](https://github.com/koalaman/shellcheck), `executable bit check` | [shfmt](https://github.com/mvdan/sh) |
| **Snakemake** | [snakemake --lint](https://snakemake.readthedocs.io/en/stable/snakefiles/writing_snakefiles.html#best-practices) | [snakefmt](https://github.com/snakemake/snakefmt/) |
| **Spelling** | [codespell](https://github.com/codespell-project/codespell) | N/A |
| **SQL** | [sqlfluff](https://github.com/sqlfluff/sqlfluff) | |
| **Svelte** | [Biome](https://biomejs.dev/) | [Biome](https://biomejs.dev/) |
| **Terraform** | [tflint](https://github.com/terraform-linters/tflint), [Checkov](https://www.checkov.io/), [Trivy](https://trivy.dev/) | [terraform fmt](https://developer.hashicorp.com/terraform/cli/commands/fmt) |
| **Terragrunt** | [terragrunt](https://github.com/gruntwork-io/terragrunt) | N/A |
| **TypeScript** | [ESLint](https://eslint.org/), [Biome](https://biomejs.dev/) | [Prettier](https://prettier.io/), [Biome](https://biomejs.dev/) |
| **Vue** | [eslint-plugin-vue](https://eslint.vuejs.org/), [Biome](https://biomejs.dev/) | [Prettier](https://prettier.io/), [Biome](https://biomejs.dev/) |
| **Vulnerabilities** | [Trivy](https://trivy.dev/) | N/A |
| **XML** | [LibXML](http://xmlsoft.org/) | |
| **YAML** | [YamlLint](https://github.com/adrienverge/yamllint) | [Prettier](https://prettier.io/) |
## Get started
More in-depth [tutorial](https://www.youtube.com/watch?v=EDAmFKO4Zt0&t=118s)
available
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
on: # yamllint disable-line rule:truthy
push: null
pull_request: null
permissions: {}
jobs:
build:
name: Lint
runs-on: ubuntu-latest
permissions:
# contents permission to clone the repository
contents: read
packages: read
# issues and pull-requests permissions to write results as pull
# request comments. Omit them if you don't need summary comments
issues: write
pull-requests: write
# To report GitHub Actions status checks. Omit if you don't need
# to update commit status
statuses: write
steps:
- name: Checkout code
uses: actions/checkout@v5
with:
# super-linter needs the full git history to get the
# list of files that changed across commits
fetch-depth: 0
persist-credentials: false
- name: Super-linter
uses: super-linter/super-linter@v8.5.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.
1. Create a new pull request to observe the results.
## Upgrade to newer super-linter versions
For more information about upgrading super-linter to a new major version, see
the [upgrade guide](docs/upgrade-guide.md).
## Add Super-Linter badge in your repository readme
You can show Super-Linter status with a badge in your repository readme:
Example:
```markdown
[](https://github.com/marketplace/actions/super-linter)
```
For more information, see
[Adding a workflow status badge](https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge).
## Super-linter variants
Super-Linter provides several variants:
- `standard`: `super-linter/super-linter@[VERSION]`: includes all supported
linters.
- `slim`: `super-linter/super-linter/slim@[VERSION]`: includes all supported
linters except:
- Rustfmt
- Rust Clippy
- Azure Resource Manager Template Toolkit (arm-ttk)
- PSScriptAnalyzer
- `dotnet` (.NET) commands and subcommands
## Configure Super-linter
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. Don't set this variable when running on GitHub Actions, unless you want to compare changes against a branch that's not the GitHub repository default branch. |
| **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** | `.editorconfig-checker.json` | Filename for [editorconfig-checker configuration](https://github.com/editorconfig-checker/editorconfig-checker) |
| **ENABLE_COMMITLINT_EDIT_MODE** | `false` | If set to `true` checks the commit message that is currently being edited with Commitlint. This is useful to run Super-linter in a `commit-msg` hook. |
| **ENABLE_COMMITLINT_STRICT_MODE** | `false` | If set to `true`, enables [commitlint strict mode](https://commitlint.js.org/reference/cli.html). |
| **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_PULL_REQUEST_SUMMARY_COMMENT** | `false` if `RUN_LOCAL=true`, `true` otherwise | If set to `true`, Super-linter will post a comment to the pull request that triggered the Super-linter workflow. |
| **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). |
| **ENFORCE_COMMITLINT_CONFIGURATION_CHECK** | `false` | If set to `true` and `VALIDATE_GIT_COMMITLINT` is set to `true`, Super-linter exits with an error if there's no commitlint configuration file. Otherwise, Super-linter emits a warning and forcefully sets `VALIDATE_GIT_COMMITLINT` to `false`. |
| **EXPORT_GITHUB_TOKEN** | `false` | If set to `true`, exports the `GITHUB_TOKEN` variable so that subprocesses can access it. It's useful when linters and formatters need to authenticate, and support loading credentials from `GITHUB_TOKEN`. |
| **FAIL_ON_CONFLICTING_TOOLS_ENABLED** | `false` | If set to `true`, Super-linter will exit with an error if potentially conflicting linters or formatters are enabled. |
| **FAIL_ON_INVALID_GITHUB_ACTIONS_EVENT_CONFIGURATION** | `false` | If set to `true`, Super-linter will exit with an error if the Super-linter configuration is not valid for specific GitHub Actions events. |
| **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_BIOME_FORMAT** | `false` | Option to enable fix mode for `BIOME_FORMAT` |
| **FIX_BIOME_LINT** | `false` | Option to enable fix mode for `BIOME_LINT` |
| **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** | `false` | 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_DOTNET_SLN_FORMAT_ANALYZERS** | `false` | Option to enable or disable fix mode for Dotnet solutions. |
| **FIX_DOTNET_SLN_FORMAT_STYLE** | `false` | Option to enable or disable fix mode for Dotnet solutions. |
| **FIX_DOTNET_SLN_FORMAT_WHITESPACE** | `false` | Option to enable or disable fix mode for Dotnet solutions. |
| **FIX_ENV** | `false` | Option to enable fix mode for `ENV`. |
| **FIX_GITHUB_ACTIONS_ZIZMOR** | `false` | Option to enable fix mode for `GITHUB_ACTIONS_ZIZMOR`. |
| **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** | `false` | 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** | `false` | 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_JSON_PRETTIER** | `false` | 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_JSONC_PRETTIER** | `false` | Option to enable fix mode for JSONC and JSON5 files with Prettier. |
| **FIX_JSX_PRETTIER** | `false` | Option to enable fix mode for JSX files with Prettier. |
| **FIX_JSX** | `false` | Option to enable fix mode for `JSX`. |
| **FIX_JUPYTER_NBQA_BLACK** | `false` | Option to enable fix mode for `NBQA_BLACK`. |
| **FIX_JUPYTER_NBQA_ISORT** | `false` | Option to enable fix mode for `NBQA_ISORT`. |
| **FIX_JUPYTER_NBQA_RUFF** | `false` | Option to enable fix mode for `NBQA_RUFF`. |
| **FIX_KOTLIN** | `false` | Option to enable fix mode for `KOTLIN`. |
| **FIX_MARKDOWN_PRETTIER** | `false` | Option to enable fix mode for Markdown files with Prettier. |
| **FIX_MARKDOWN** | `false` | Option to enable fix mode for `MARKDOWN`. |
| **FIX_NATURAL_LANGUAGE** | `false` | Option to enable fix mode for `NATURAL_LANGUAGE`. |
| **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_PYTHON_RUFF_FORMAT** | `false` | Option to enable fix mode for `PYTHON_RUFF_FORMAT`. |
| **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_2024** | `false` | Option to enable fix mode for `RUST_2024`. |
| **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_SPELL_CODESPELL** | `false` | Option to enable fix mode for `SPELL_CODESPELL`. |
| **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_VUE** | `false` | Option to enable fix mode for VUE. |
| **FIX_VUE_PRETTIER** | `false` | Flag to enable or disable the formatting of Vue files with Prettier. |
| **FIX_YAML_PRETTIER** | `false` | 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_ACTIONS_ZIZMOR_CONFIG_FILE** | `zizmor.yaml` | Filename for [zizmor configuration file](https://docs.zizmor.sh/configuration/) |
| **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_COMMAND_OPTIONS** | not set | Additional options and arguments to pass to the command when running Gitleaks |
| **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. |
| **GO_CONFIG_FILE** | `.golangci.yml` | Filename for [golangci-lint configuration](https://golangci-lint.run/usage/configuration/) (ex: `.golangci.toml`) |
| **GROOVY_FAILON_LEVEL** | `warning` | npm-groovy-lint failon level. |
| **GROOVY_LOG_LEVEL** | `info` | npm-groovy-lint 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_COMMAND_ARGS** | not set | Additional command options to pass to Checkstyle. For more information about the available options, see [checkstyle command line usage](https://checkstyle.org/cmdline.html#Command_line_usage). |
| **JAVA_JVM_COMMAND_ARGS** | not set | Additional command options to pass to the Java Virtual Machine (JVM) when running Checkstyle. For example, can be used to specify additional configuration parameters via Java properties, such as [Suppression Filter files](https://checkstyle.org/filters/suppressionfilter.html), for example: `-Dorg.checkstyle.sun.suppressionfilter.config=path/to/suppressions.xml` |
| **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** | `eslint.config.mjs` | Filename for [ESLint configuration](https://eslint.org/docs/user-guide/configuring#configuration-file-formats) |
| **JSCPD_CONFIG_FILE** | `.jscpd.json` | Filename for JSCPD configuration |
| **JUPYTER_NBQA_BLACK_CONFIG_FILE** | Value of **PYTHON_BLACK_CONFIG_FILE** or `.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`) |
| **JUPYTER_NBQA_FLAKE8_CONFIG_FILE** | Value of **PYTHON_FLAKE8_CONFIG_FILE** or `.flake8` | Filename for [flake8 configuration](https://flake8.pycqa.org/en/latest/user/configuration.html) (ex: `.flake8`, `tox.ini`) |
| **JUPYTER_NBQA_ISORT_CONFIG_FILE** | Value of **PYTHON_ISORT_CONFIG_FILE** or `.isort.cfg` | Filename for [isort configuration](https://pycqa.github.io/isort/docs/configuration/config_files.html) (ex: `.isort.cfg`, `pyproject.toml`) |
| **JUPYTER_NBQA_MYPY_CONFIG_FILE** | Value of **PYTHON_MYPY_CONFIG_FILE** or `.mypy.ini` | Filename for [mypy configuration](https://mypy.readthedocs.io/en/stable/config_file.html) (ex: `.mypy.ini`, `setup.config`) |
| **JUPYTER_NBQA_PYLINT_CONFIG_FILE** | Value of **PYTHON_PYLINT_CONFIG_FILE** or `.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`) |
| **JUPYTER_NBQA_RUFF_CONFIG_FILE** | Value of **PYTHON_RUFF_CONFIG_FILE** or `.ruff.toml` | Filename for [ruff configuration](https://docs.astral.sh/ruff/configuration/) when linting files. |
| **KUBERNETES_KUBECONFORM_OPTIONS** | not set | Additional arguments to pass to the command-line when running Kubeconform (Example: `--ignore-missing-schemas`) |
| **LINTER_RULES_PATH** | `.github/linters` | Directory for all linter configuration rules. For more information, see [Configure Linters](#configure-linters). |
| **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`) |
| **OS_PACKAGES_CONFIG_FILE_NAME** | `os-packages.json` | Name of the file that holds the list of operating system (OS) packages to install, in JSON format. Relative to `LINTER_RULES_PATH`. For more information, see [Install additional dependencies](#install-additional-dependencies). |
| **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`) |
| **PRETTIER_COMMAND_OPTIONS** | not set | Additional options and arguments to add to the command when running Prettier. These options will be added to all Prettier invocations, regardless of the LANGUAGE. |
| **PRE_COMMIT_COMMAND_ARGS** | not set | Additional arguments to pass to the `pre-commit` command. |
| **PRE_COMMIT_CONFIG_FILE** | `.pre-commit-config.yaml` | Filename for [pre-commit configuration](https://pre-commit.com/#plugins) |
| **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/) when linting files. |
| **PYTHON_RUFF_FORMAT_CONFIG_FILE** | `.ruff.toml` | Filename for [ruff configuration](https://docs.astral.sh/ruff/configuration/) when formatting files. |
| **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`) |
| **REMOVE_ANSI_COLOR_CODES_FROM_OUTPUT** | `false` | If set to `true`, Super-linter removes ANSI color codes from linters stdout and stderr files, and from the Super-linter log file. |
| **RUBY_CONFIG_FILE**