oxsecurity/megalinter
GitHub: oxsecurity/megalinter
一款多语言代码质量与安全扫描工具,通过集成多种 Linter 在 CI 或本地统一检测问题并输出报告。
Stars: 2535 | Forks: 303
# MegaLinter, by [](https://www.ox.security/?ref=megalinter)

[](https://megalinter.io/flavors/)
[](https://npmjs.org/package/mega-linter-runner)
[](https://github.com/oxsecurity/megalinter/stargazers/)
[](https://github.com/oxsecurity/megalinter/actions?query=workflow%3AMegaLinter+branch%3Amain)
[](https://codecov.io/gh/oxsecurity/megalinter)
[](https://github.com/oxsecurity/megalinter/blob/main/./docs/used-by-stats.md)
[](https://github.com/aquasecurity/trivy)
[](https://github.com/oxsecurity/megalinter/graphs/contributors/)
[](https://github.com/sponsors/nvuillam)
[](https://github.com/oxsecurity/megalinter/blob/main/.github/CONTRIBUTING.md)
[](https://twitter.com/intent/tweet?text=Check+MegaLinter+to+say+goodbye+to+dirty+code+in+your+projects+%3A%29+100%25+free+and+open+source+for+all+uses&url=https://megalinter.io/&via=NicolasVuillamy&hashtags=linters,code,quality,ci,python,java,golang,c,dotnet,kotlin,rust,scala,salesforce,terraform)
MegaLinter is an **open-source** tool for **CI/CD workflows** that analyzes the **consistency of your code**, **IaC**, **configuration**, and **scripts** in your repository to **ensure all your project sources are clean and formatted**, no matter which IDE or toolbox is used by your developers. Powered by [**OX Security**](https://www.ox.security/?ref=megalinter).
Supports [**69** languages](#languages), [**23** formats](#formats), [**22** tooling formats](#tooling-formats), and is **ready to use out of the box** as a GitHub Action or with any CI system. It is **highly configurable** and **free for all uses**.
MegaLinter has **native integrations** with many major CI/CD tools.
[](https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/GitHubCommentReporter.md)
[](https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/GitlabCommentReporter.md)
[](https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/AzureCommentReporter.md)
[](https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/BitbucketCommentReporter.md)
[](https://github.com/oxsecurity/megalinter/tree/main/docs/install-jenkins.md)
[](https://github.com/oxsecurity/megalinter/tree/main/docs/install-drone.md)
[](https://github.com/oxsecurity/megalinter/tree/main/docs/install-concourse.md)
[](https://github.com/oxsecurity/megalinter/tree/main/docs/install-docker.md)
[](https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/SarifReporter.md)
[](https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/ApiReporter.md)

- Use the new [LLM Advisor](https://megalinter.io/latest/llm-advisor/) that will tell you how to fix linters issues
- Create your own [MegaLinter Custom Flavors](https://megalinter.io/latest/custom-flavors/) to improve performance
Before you go further, see the [**online documentation website, which offers much easier navigation than this README**](https://megalinter.io/)
## Table of Contents
- [Why MegaLinter](#why-megalinter)
- [Quick Start](#quick-start)
- [Supported Linters](#supported-linters)
- [Languages](#languages)
- [Formats](#formats)
- [Tooling formats](#tooling-formats)
- [Other](#other)
- [Installation](#installation)
- [Assisted installation](#assisted-installation)
- [Which version to use ?](#which-version-to-use-)
- [GitHub Action](#github-action)
- [GitLab CI](#gitlab-ci)
- [Azure Pipelines](#azure-pipelines)
- [Single Repository](#single-repository)
- [Central Repository](#central-repository)
- [Pull Request Comments](#pull-request-comments)
- [Detailed Tutorial](#detailed-tutorial)
- [Bitbucket Pipelines](#bitbucket-pipelines)
- [Jenkins](#jenkins)
- [Concourse](#concourse)
- [Pipeline step](#pipeline-step)
- [Use it as a reusable task](#use-it-as-a-reusable-task)
- [Drone CI](#drone-ci)
- [(Optional) Adjusting trigger rules](#optional-adjusting-trigger-rules)
- [Docker container](#docker-container)
- [Run MegaLinter locally](#run-megalinter-locally)
- [Configuration](#configuration)
- [.mega-linter.yml file](#mega-linteryml-file)
- [Common variables](#common-variables)
- [Activation and deactivation](#activation-and-deactivation)
- [Filter linted files](#filter-linted-files)
- [Apply fixes](#apply-fixes)
- [Apply fixes issues](#apply-fixes-issues)
- [Notes](#notes)
- [Linter specific variables](#linter-specific-variables)
- [Pre-commands](#pre-commands)
- [Post-commands](#post-commands)
- [Environment variables security](#environment-variables-security)
- [Secured env variables](#secured-env-variables)
- [Secured configuration examples](#secured-configuration-examples)
- [Default secured variables](#default-secured-variables)
- [Unhide variables for linters](#unhide-variables-for-linters)
- [CLI lint mode](#cli-lint-mode)
- [Reporters](#reporters)
- [Flavors](#flavors)
- [Badge](#badge)
- [Markdown](#markdown)
- [reStructuredText](#restructuredtext)
- [Plugins](#plugins)
- [External Plugins Catalog](#external-plugins-catalog)
- [Use external plugins](#use-external-plugins)
- [Example](#example)
- [Create your own plugin](#create-your-own-plugin)
- [Limitations](#limitations)
- [They talk about MegaLinter](#they-talk-about-megalinter)
- [English articles](#english-articles)
- [French articles](#french-articles)
- [Videos](#videos)
- [Web Sites](#web-sites)
- [Linters](#linters)
- [Frequently Asked Questions](#frequently-asked-questions)
- [How to contribute](#how-to-contribute)
- [Special thanks](#special-thanks)
- [Maintainers](#maintainers)
- [Contributors](#contributors)
- [Open-source teams](#open-source-teams)
- [Super-Linter team](#super-linter-team)
- [License](#license)
- [MegaLinter vs Super-Linter](#megalinter-vs-super-linter)
- [Security](#security)
- [Performance](#performance)
- [More languages and formats linted](#more-languages-and-formats-linted)
- [Automatically apply formatting and fixes](#automatically-apply-formatting-and-fixes)
- [Run locally](#run-locally)
- [Reports](#reports)
- [Capabilities](#capabilities)
- [Additional Reporters](#additional-reporters)
- [Enhanced configuration](#enhanced-configuration)
- [Enhanced documentation](#enhanced-documentation)
- [Plugin management](#plugin-management)
- [Simplify architecture and evolutionary maintenance](#simplify-architecture-and-evolutionary-maintenance)
- [Improve robustness \& stability](#improve-robustness--stability)
## Why MegaLinter
Projects need to contain clean code in order to **avoid technical debt**, which makes **ongoing maintenance harder and more time-consuming**.
By using [**code formatters and code linters**](#supported-linters), you ensure that your **codebase is easier to read** and **follows best practices**, from kickoff through each step of the project lifecycle.
Not all developers use linters in their IDEs, which makes code reviews harder and longer to process.
By using **MegaLinter**, you'll enjoy the following benefits for your team:
- At **each pull request**, it **automatically analyzes all updated code across all languages**.
- By reading error logs, **developers learn best practices** for the languages they use.
- The [**MegaLinter documentation**](https://megalinter.io/) provides a **list of IDE plugins for each linter**, so developers know which linter and plugins to install.
- MegaLinter **works out of the box** after a [**quick setup**](#quick-start).
- **Formatting and fixes** can be automatically [**applied directly to the Git branch**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-apply-fixes.md) or [**provided in reports**](https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/UpdatedSourcesReporter.md).
- This tool is **100% open source** and **free for all uses** (personal, professional, public, and private repositories).
- MegaLinter can run on [**any CI tool**](https://github.com/oxsecurity/megalinter/tree/main/docs/install-assisted.md) and be [**run locally**](https://megalinter.io/mega-linter-runner/): **no need to authorize an external application**, and **your codebase never leaves your tooling ecosystem**.
- This repo is a hard fork of [GitHub Super-Linter](https://github.com/super-linter/super-linter), rewritten in Python to add [many additional features](#mega-linter-vs-super-linter).
- If you are a Super-Linter user, you can transparently **switch to MegaLinter and keep the same configuration** (just replace `super-linter/super-linter@v3` with `oxsecurity/megalinter@v9` in your GitHub Action YAML file, [like on this PR](https://github.com/nvuillam/npm-groovy-lint/pull/109)).
- If you want to use MegaLinter's extra features (recommended), please take 5 minutes to use the [assisted installation](https://github.com/oxsecurity/megalinter/tree/main/docs/install-assisted.md).
- For a beginner-friendly example of getting started with MegaLinter, check out [this blog post](https://ayyjohn.com/posts/linting-a-jekyll-blog-with-mega-linter) by Alec Johnson.
### Languages
| | Language | Linter | Additional |
|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|---------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
|
| [**BASH**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash.md) | [**bash-exec**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_bash_exec.md)
[_BASH_EXEC_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_bash_exec.md) | | |
| [**BASH**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash.md) | [**shellcheck**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shellcheck.md)
[_BASH_SHELLCHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shellcheck.md) | [](https://github.com/koalaman/shellcheck)  | |
| [**BASH**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash.md) | [**shfmt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shfmt.md)
[_BASH_SHFMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shfmt.md) | [](https://github.com/mvdan/sh)  | |
| [**C**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c.md) | [**cppcheck**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cppcheck.md)
[_C_CPPCHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cppcheck.md) | | |
| [**C**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c.md) | [**cpplint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cpplint.md)
[_C_CPPLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cpplint.md) | [](https://github.com/cpplint/cpplint) | |
| [**C**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c.md) | [**clang-format**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_clang_format.md)
[_C_CLANG_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_clang_format.md) | [](https://github.com/llvm/llvm-project)  | |
| [**CLOJURE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure.md) | [**clj-kondo**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_clj_kondo.md)
[_CLOJURE_CLJ_KONDO_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_clj_kondo.md) | [](https://github.com/borkdude/clj-kondo) | |
| [**CLOJURE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure.md) | [**cljstyle**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_cljstyle.md)
[_CLOJURE_CLJSTYLE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_cljstyle.md) | [](https://github.com/greglook/cljstyle)  | |
| [**COFFEE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee.md) | [**coffeelint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md)
[_COFFEE_COFFEELINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md) | [](https://github.com/clutchski/coffeelint) | |
| [**C++** (CPP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp.md) | [**cppcheck**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cppcheck.md)
[_CPP_CPPCHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cppcheck.md) | | |
| [**C++** (CPP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp.md) | [**cpplint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cpplint.md)
[_CPP_CPPLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cpplint.md) | [](https://github.com/cpplint/cpplint) | |
| [**C++** (CPP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp.md) | [**clang-format**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_clang_format.md)
[_CPP_CLANG_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_clang_format.md) | [](https://github.com/llvm/llvm-project)  | |
| [**C#** (CSHARP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp.md) | [**dotnet-format**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md)
[_CSHARP_DOTNET_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md) | [](https://github.com/dotnet/sdk)  | |
| [**C#** (CSHARP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp.md) | [**csharpier**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_csharpier.md)
[_CSHARP_CSHARPIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_csharpier.md) | [](https://github.com/belav/csharpier)  | |
| [**C#** (CSHARP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp.md) | [**roslynator**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_roslynator.md)
[_CSHARP_ROSLYNATOR_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_roslynator.md) | [](https://github.com/dotnet/Roslynator)  | |
| [**DART**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart.md) | [**dartanalyzer**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md)
[_DART_DARTANALYZER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md) | [](https://github.com/dart-lang/sdk) | |
| [**GO**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go.md) | [**golangci-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md)
[_GO_GOLANGCI_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md) | [](https://github.com/golangci/golangci-lint)   | |
| [**GO**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go.md) | [**revive**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_revive.md)
[_GO_REVIVE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_revive.md) | [](https://github.com/mgechev/revive)  | |
| [**GROOVY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy.md) | [**npm-groovy-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md)
[_GROOVY_NPM_GROOVY_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md) | [](https://github.com/nvuillam/npm-groovy-lint)   | |
| [**JAVA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java.md) | [**checkstyle**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_checkstyle.md)
[_JAVA_CHECKSTYLE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_checkstyle.md) | [](https://github.com/checkstyle/checkstyle)  | |
| [**JAVA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java.md) | [**pmd**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_pmd.md)
[_JAVA_PMD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_pmd.md) | [](https://github.com/pmd/pmd)  | |
| [**JAVASCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript.md) | [**eslint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_eslint.md)
[_JAVASCRIPT_ES_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_eslint.md) | [](https://github.com/eslint/eslint)   | |
| [**JAVASCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript.md) | [**standard**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_standard.md)
[_JAVASCRIPT_STANDARD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_standard.md) | [](https://github.com/standard/standard)  | |
| [**JAVASCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript.md) | [**prettier**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_prettier.md)
[_JAVASCRIPT_PRETTIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_prettier.md) | [](https://github.com/prettier/prettier)  | |
| [**JSX**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx.md) | [**eslint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx_eslint.md)
[_JSX_ESLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx_eslint.md) | [](https://github.com/Rel1cx/eslint-react)   | |
| [**KOTLIN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin.md) | [**ktlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_ktlint.md)
[_KOTLIN_KTLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_ktlint.md) | [](https://github.com/pinterest/ktlint)   | |
| [**KOTLIN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin.md) | [**detekt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_detekt.md)
[_KOTLIN_DETEKT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_detekt.md) | [](https://github.com/detekt/detekt)  | |
| [**LUA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua.md) | [**luacheck**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_luacheck.md)
[_LUA_LUACHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_luacheck.md) | [](https://github.com/lunarmodules/luacheck) | |
| [**LUA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua.md) | [**selene**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_selene.md)
[_LUA_SELENE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_selene.md) |  [](https://github.com/Kampfkarren/selene) | |
| [**LUA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua.md) | [**stylua**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_stylua.md)
[_LUA_STYLUA_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_stylua.md) | [](https://github.com/JohnnyMorganz/StyLua) | |
| [**MAKEFILE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/makefile.md) | [**checkmake**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/makefile_checkmake.md)
[_MAKEFILE_CHECKMAKE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/makefile_checkmake.md) |  [](https://github.com/checkmake/checkmake) | |
| [**PERL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/perl.md) | [**perlcritic**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/perl_perlcritic.md)
[_PERL_PERLCRITIC_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/perl_perlcritic.md) | [](https://github.com/Perl-Critic/Perl-Critic) | |
| [**PHP**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php.md) | [**phpcs**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phpcs.md)
[_PHP_PHPCS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phpcs.md) | [](https://github.com/PHPCSStandards/PHP_CodeSniffer)  | |
| [**PHP**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php.md) | [**phpstan**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phpstan.md)
[_PHP_PHPSTAN_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phpstan.md) | [](https://github.com/phpstan/phpstan)  | |
| [**PHP**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php.md) | [**psalm**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_psalm.md)
[_PHP_PSALM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_psalm.md) | [](https://github.com/vimeo/psalm)  | |
| [**PHP**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php.md) | [**phplint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phplint.md)
[_PHP_PHPLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phplint.md) | [](https://github.com/overtrue/phplint)  | |
| [**PHP**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php.md) | [**php-cs-fixer**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_php_cs_fixer.md)
[_PHP_PHPCSFIXER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_php_cs_fixer.md) | [](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) | |
| [**POWERSHELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/powershell.md) | [**powershell**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/powershell_powershell.md)
[_POWERSHELL_POWERSHELL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/powershell_powershell.md) | [](https://github.com/PowerShell/PSScriptAnalyzer)  | |
| [**POWERSHELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/powershell.md) | [**powershell_formatter**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/powershell_powershell_formatter.md)
[_POWERSHELL_POWERSHELL_FORMATTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/powershell_powershell_formatter.md) | [](https://github.com/PowerShell/PSScriptAnalyzer)  | |
| [**PYTHON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python.md) | [**pylint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_pylint.md)
[_PYTHON_PYLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_pylint.md) | [](https://github.com/pylint-dev/pylint) | |
| [**PYTHON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python.md) | [**black**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_black.md)
[_PYTHON_BLACK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_black.md) | [](https://github.com/psf/black)  | |
| [**PYTHON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python.md) | [**flake8**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_flake8.md)
[_PYTHON_FLAKE8_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_flake8.md) | [](https://github.com/PyCQA/flake8) | |
| [**PYTHON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python.md) | [**isort**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_isort.md)
[_PYTHON_ISORT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_isort.md) | [](https://github.com/PyCQA/isort)  | |
| [**PYTHON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python.md) | [**bandit**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_bandit.md)
[_PYTHON_BANDIT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_bandit.md) | [](https://github.com/PyCQA/bandit)  | |
| [**PYTHON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python.md) | [**mypy**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_mypy.md)
[_PYTHON_MYPY_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_mypy.md) | [](https://github.com/python/mypy) | |
| [**PYTHON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python.md) | [**nbqa**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_nbqa.md)
[_PYTHON_NBQA_MYPY_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_nbqa.md) | [](https://github.com/nbQA-dev/nbQA) | |
| [**PYTHON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python.md) | [**pyright**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_pyright.md)
[_PYTHON_PYRIGHT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_pyright.md) | [](https://github.com/microsoft/pyright) | |
| [**PYTHON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python.md) | [**ruff**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_ruff.md)
[_PYTHON_RUFF_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_ruff.md) | [](https://github.com/astral-sh/ruff)   | |
| [**PYTHON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python.md) | [**ruff-format**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_ruff_format.md)
[_PYTHON_RUFF_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_ruff_format.md) | [](https://github.com/astral-sh/ruff)  | |
| [**R**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/r.md) | [**lintr**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/r_lintr.md)
[_R_LINTR_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/r_lintr.md) | [](https://github.com/r-lib/lintr) | |
| [**RAKU**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/raku.md) | [**raku**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/raku_raku.md)
[_RAKU_RAKU_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/raku_raku.md) | [](https://github.com/rakudo/rakudo) | |
| [**RUBY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ruby.md) | [**rubocop**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ruby_rubocop.md)
[_RUBY_RUBOCOP_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ruby_rubocop.md) | [](https://github.com/rubocop-hq/rubocop)  | |
| [**RUST**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rust.md) | [**clippy**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rust_clippy.md)
[_RUST_CLIPPY_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rust_clippy.md) | [](https://github.com/rust-lang/rust-clippy) | |
| [**SALESFORCE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce.md) | [**code-analyzer-apex**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_code_analyzer_apex.md)
[_SALESFORCE_CODE_ANALYZER_APEX_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_code_analyzer_apex.md) | [](https://github.com/forcedotcom/code-analyzer) | |
| [**SALESFORCE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce.md) | [**code-analyzer-aura**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_code_analyzer_aura.md)
[_SALESFORCE_CODE_ANALYZER_AURA_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_code_analyzer_aura.md) | [](https://github.com/forcedotcom/code-analyzer) | |
| [**SALESFORCE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce.md) | [**code-analyzer-lwc**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_code_analyzer_lwc.md)
[_SALESFORCE_CODE_ANALYZER_LWC_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_code_analyzer_lwc.md) | [](https://github.com/forcedotcom/code-analyzer) | |
| [**SALESFORCE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce.md) | [**sfdx-scanner-apex**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_apex.md)
[_SALESFORCE_SFDX_SCANNER_APEX_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_apex.md) |   [](https://github.com/forcedotcom/code-analyzer) | |
| [**SALESFORCE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce.md) | [**sfdx-scanner-aura**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_aura.md)
[_SALESFORCE_SFDX_SCANNER_AURA_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_aura.md) |   [](https://github.com/forcedotcom/code-analyzer) | |
| [**SALESFORCE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce.md) | [**sfdx-scanner-lwc**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_lwc.md)
[_SALESFORCE_SFDX_SCANNER_LWC_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_lwc.md) |   [](https://github.com/forcedotcom/code-analyzer) | |
| [**SALESFORCE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce.md) | [**lightning-flow-scanner**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_lightning_flow_scanner.md)
[_SALESFORCE_LIGHTNING_FLOW_SCANNER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_lightning_flow_scanner.md) |  [](https://github.com/Flow-Scanner/lightning-flow-scanner-cli) | |
| [**SCALA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/scala.md) | [**scalafix**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/scala_scalafix.md)
[_SCALA_SCALAFIX_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/scala_scalafix.md) | [](https://github.com/scalacenter/scalafix) | |
| [**SQL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql.md) | [**sqlfluff**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md)
[_SQL_SQLFLUFF_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md) | [](https://github.com/sqlfluff/sqlfluff)  | |
| [**SQL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql.md) | [**tsqllint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_tsqllint.md)
[_SQL_TSQLLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_tsqllint.md) | [](https://github.com/tsqllint/tsqllint) | |
| [**SWIFT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift.md) | [**swiftlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md)
[_SWIFT_SWIFTLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md) | [](https://github.com/realm/SwiftLint)  | |
| [**TSX**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tsx.md) | [**eslint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tsx_eslint.md)
[_TSX_ESLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tsx_eslint.md) | [](https://github.com/Rel1cx/eslint-react)   | |
| [**TYPESCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript.md) | [**eslint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_eslint.md)
[_TYPESCRIPT_ES_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_eslint.md) | [](https://github.com/typescript-eslint/typescript-eslint)   | |
| [**TYPESCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript.md) | [**ts-standard**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_ts_standard.md)
[_TYPESCRIPT_STANDARD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_ts_standard.md) | [](https://github.com/standard/ts-standard)  | |
| [**TYPESCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript.md) | [**prettier**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_prettier.md)
[_TYPESCRIPT_PRETTIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_prettier.md) | [](https://github.com/prettier/prettier)  | |
| [**Visual Basic .NET** (VBDOTNET)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet.md) | [**dotnet-format**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md)
[_VBDOTNET_DOTNET_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md) | [](https://github.com/dotnet/sdk)  | ### Formats | | Format | Linter | Additional | |:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| |
| [**CSS**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/css.md) | [**stylelint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/css_stylelint.md)
[_CSS_STYLELINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/css_stylelint.md) | [](https://github.com/stylelint/stylelint)  | |
| [**ENV**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/env.md) | [**dotenv-linter**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/env_dotenv_linter.md)
[_ENV_DOTENV_LINTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/env_dotenv_linter.md) | [](https://github.com/dotenv-linter/dotenv-linter)  | |
| [**GRAPHQL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/graphql.md) | [**graphql-schema-linter**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/graphql_graphql_schema_linter.md)
[_GRAPHQL_GRAPHQL_SCHEMA_LINTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/graphql_graphql_schema_linter.md) | [](https://github.com/cjoudrey/graphql-schema-linter) | |
| [**HTML**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/html.md) | [**djlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/html_djlint.md)
[_HTML_DJLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/html_djlint.md) | [](https://github.com/Riverside-Healthcare/djlint) | |
| [**HTML**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/html.md) | [**htmlhint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/html_htmlhint.md)
[_HTML_HTMLHINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/html_htmlhint.md) | [](https://github.com/htmlhint/HTMLHint) | |
| [**JSON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json.md) | [**jsonlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_jsonlint.md)
[_JSON_JSONLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_jsonlint.md) | [](https://github.com/prantlf/jsonlint) | |
| [**JSON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json.md) | [**eslint-plugin-jsonc**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_eslint_plugin_jsonc.md)
[_JSON_ESLINT_PLUGIN_JSONC_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_eslint_plugin_jsonc.md) |   [](https://github.com/ota-meshi/eslint-plugin-jsonc)   | |
| [**JSON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json.md) | [**v8r**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_v8r.md)
[_JSON_V8R_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_v8r.md) | [](https://github.com/chris48s/v8r) | |
| [**JSON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json.md) | [**prettier**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_prettier.md)
[_JSON_PRETTIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_prettier.md) | [](https://github.com/prettier/prettier)  | |
| [**JSON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json.md) | [**npm-package-json-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_npm_package_json_lint.md)
[_JSON_NPM_PACKAGE_JSON_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_npm_package_json_lint.md) | [](https://github.com/tclindner/npm-package-json-lint) | |
| [**LATEX**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/latex.md) | [**chktex**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/latex_chktex.md)
[_LATEX_CHKTEX_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/latex_chktex.md) | | |
| [**MARKDOWN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown.md) | [**markdownlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdownlint.md)
[_MARKDOWN_MARKDOWNLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdownlint.md) | [](https://github.com/DavidAnson/markdownlint)  | |
| [**MARKDOWN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown.md) | [**remark-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_remark_lint.md)
[_MARKDOWN_REMARK_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_remark_lint.md) |  [](https://github.com/remarkjs/remark-lint)  | |
| [**MARKDOWN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown.md) | [**markdown-table-formatter**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdown_table_formatter.md)
[_MARKDOWN_MARKDOWN_TABLE_FORMATTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdown_table_formatter.md) | [](https://github.com/nvuillam/markdown-table-formatter)  | |
| [**MARKDOWN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown.md) | [**rumdl**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_rumdl.md)
[_MARKDOWN_RUMDL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_rumdl.md) | [](https://github.com/rvben/rumdl)   | |
| [**PROTOBUF**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/protobuf.md) | [**protolint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/protobuf_protolint.md)
[_PROTOBUF_PROTOLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/protobuf_protolint.md) | [](https://github.com/yoheimuta/protolint)  | |
| [**RST**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst.md) | [**rst-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rst_lint.md)
[_RST_RST_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rst_lint.md) | [](https://github.com/twolfson/restructuredtext-lint) | |
| [**RST**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst.md) | [**rstcheck**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rstcheck.md)
[_RST_RSTCHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rstcheck.md) | [](https://github.com/myint/rstcheck) | |
| [**RST**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst.md) | [**rstfmt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rstfmt.md)
[_RST_RSTFMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rstfmt.md) |  | |
| [**XML**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/xml.md) | [**xmllint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/xml_xmllint.md)
[_XML_XMLLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/xml_xmllint.md) |  | |
| [**YAML**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml.md) | [**prettier**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_prettier.md)
[_YAML_PRETTIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_prettier.md) | [](https://github.com/prettier/prettier)  | |
| [**YAML**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml.md) | [**yamllint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_yamllint.md)
[_YAML_YAMLLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_yamllint.md) | [](https://github.com/adrienverge/yamllint) | |
| [**YAML**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml.md) | [**v8r**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_v8r.md)
[_YAML_V8R_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_v8r.md) | [](https://github.com/chris48s/v8r) | ### Tooling formats | | Tooling format | Linter | Additional | |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| |
| [**ACTION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action.md) | [**actionlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md)
[_ACTION_ACTIONLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md) | [](https://github.com/rhysd/actionlint) | |
| [**ACTION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action.md) | [**zizmor**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_zizmor.md)
[_ACTION_ZIZMOR_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_zizmor.md) | [](https://github.com/zizmorcore/zizmor)  | |
| [**ANSIBLE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible.md) | [**ansible-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md)
[_ANSIBLE_ANSIBLE_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md) | [](https://github.com/ansible/ansible-lint)  | |
| [**API**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/api.md) | [**spectral**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/api_spectral.md)
[_API_SPECTRAL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/api_spectral.md) |  [](https://github.com/stoplightio/spectral)  | |
| [**ARM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm.md) | [**arm-ttk**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md)
[_ARM_ARM_TTK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md) | [](https://github.com/Azure/arm-ttk) | |
| [**BICEP**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep.md) | [**bicep_linter**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep_bicep_linter.md)
[_BICEP_BICEP_LINTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep_bicep_linter.md) | [](https://github.com/Azure/bicep) | |
| [**CLOUDFORMATION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation.md) | [**cfn-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md)
[_CLOUDFORMATION_CFN_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md) | [](https://github.com/aws-cloudformation/cfn-lint)  | |
| [**DOCKERFILE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile.md) | [**hadolint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md)
[_DOCKERFILE_HADOLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md) | [](https://github.com/hadolint/hadolint)  | |
| [**EDITORCONFIG**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig.md) | [**editorconfig-checker**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md)
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md) | [](https://github.com/editorconfig-checker/editorconfig-checker) | |
| [**GHERKIN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin.md) | [**gherkin-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md)
[_GHERKIN_GHERKIN_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md) | [](https://github.com/gherkin-lint/gherkin-lint) | |
| [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md) | [**kubeconform**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md)
[_KUBERNETES_KUBECONFORM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md) | [](https://github.com/yannh/kubeconform) | |
| [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md) | [**helm**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_helm.md)
[_KUBERNETES_HELM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_helm.md) | [](https://github.com/helm/helm) | |
| [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md) | [**kubescape**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubescape.md)
[_KUBERNETES_KUBESCAPE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubescape.md) | [](https://github.com/kubescape/kubescape)  | |
| [**PUPPET**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet.md) | [**puppet-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md)
[_PUPPET_PUPPET_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md) |  [](https://github.com/puppetlabs/puppet-lint)  | |
| [**ROBOTFRAMEWORK**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/robotframework.md) | [**robocop**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/robotframework_robocop.md)
[_ROBOTFRAMEWORK_ROBOCOP_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/robotframework_robocop.md) | [](https://github.com/MarketSquare/robotframework-robocop)   | |
| [**SNAKEMAKE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake.md) | [**snakemake**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md)
[_SNAKEMAKE_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md) | [](https://github.com/snakemake/snakemake) | |
| [**SNAKEMAKE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake.md) | [**snakefmt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md)
[_SNAKEMAKE_SNAKEFMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md) | [](https://github.com/snakemake/snakefmt)  | |
| [**TEKTON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton.md) | [**tekton-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md)
[_TEKTON_TEKTON_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md) | [](https://github.com/IBM/tekton-lint) | |
| [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**tflint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md)
[_TERRAFORM_TFLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md) | [](https://github.com/terraform-linters/tflint)  | |
| [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terrascan**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md)
[_TERRAFORM_TERRASCAN_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md) |   [](https://github.com/tenable/terrascan)  | |
| [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terragrunt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md)
[_TERRAFORM_TERRAGRUNT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md) | [](https://github.com/gruntwork-io/terragrunt)  | |
| [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md) | [**terraform-fmt**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md)
[_TERRAFORM_TERRAFORM_FMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md) | [](https://github.com/hashicorp/terraform)  | ### Other | | Code quality checker | Linter | Additional | |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| |
| [**COPYPASTE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste.md) | [**jscpd**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md)
[_COPYPASTE_JSCPD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md) | [](https://github.com/kucherenko/jscpd) | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**checkov**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_checkov.md)
[_REPOSITORY_CHECKOV_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_checkov.md) | [](https://github.com/bridgecrewio/checkov)  | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**devskim**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md)
[_REPOSITORY_DEVSKIM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md) | [](https://github.com/microsoft/DevSkim)  | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**dustilock**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md)
[_REPOSITORY_DUSTILOCK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md) | [](https://github.com/Checkmarx/dustilock)  | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**git_diff**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md)
[_REPOSITORY_GIT_DIFF_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md) | [](https://github.com/git/git) | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**gitleaks**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md)
[_REPOSITORY_GITLEAKS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md) |  [](https://github.com/gitleaks/gitleaks)  | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**betterleaks**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_betterleaks.md)
[_REPOSITORY_BETTERLEAKS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_betterleaks.md) | [](https://github.com/betterleaks/betterleaks)  | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**grype**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_grype.md)
[_REPOSITORY_GRYPE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_grype.md) |  [](https://github.com/anchore/grype)  | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**kics**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_kics.md)
[_REPOSITORY_KICS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_kics.md) |  [](https://github.com/checkmarx/kics)  | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**ls-lint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_ls_lint.md)
[_REPOSITORY_LS_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_ls_lint.md) | [](https://github.com/loeffel-io/ls-lint) | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**osv-scanner**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_osv_scanner.md)
[_REPOSITORY_OSV_SCANNER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_osv_scanner.md) | [](https://github.com/google/osv-scanner) | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**secretlint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md)
[_REPOSITORY_SECRETLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md) | [](https://github.com/secretlint/secretlint)  | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**semgrep**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md)
[_REPOSITORY_SEMGREP_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md) | [](https://github.com/returntocorp/semgrep)  | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**syft**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md)
[_REPOSITORY_SYFT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md) | [](https://github.com/anchore/syft)  | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**trivy**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md)
[_REPOSITORY_TRIVY_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md) | [](https://github.com/aquasecurity/trivy)  | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**trivy-sbom**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy_sbom.md)
[_REPOSITORY_TRIVY_SBOM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy_sbom.md) | [](https://github.com/aquasecurity/trivy)  | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**trufflehog**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trufflehog.md)
[_REPOSITORY_TRUFFLEHOG_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trufflehog.md) | [](https://github.com/trufflesecurity/trufflehog) | |
| [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md) | [**kingfisher**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_kingfisher.md)
[_REPOSITORY_KINGFISHER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_kingfisher.md) | [](https://github.com/mongodb/kingfisher)  | |
| [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**cspell**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md)
[_SPELL_CSPELL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md) | [](https://github.com/streetsidesoftware/cspell) | |
| [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**proselint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_proselint.md)
[_SPELL_PROSELINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_proselint.md) | [](https://github.com/amperser/proselint) | |
| [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**vale**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_vale.md)
[_SPELL_VALE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_vale.md) | [](https://github.com/errata-ai/vale) | |
| [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**lychee**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_lychee.md)
[_SPELL_LYCHEE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_lychee.md) | [](https://github.com/lycheeverse/lychee) | |
| [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md) | [**codespell**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_codespell.md)
[_SPELL_CODESPELL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_codespell.md) | [](https://github.com/codespell-project/codespell)  | The following instructions examples are using latest MegaLinter stable version (**v9** , always corresponding to the [latest release](https://github.com/oxsecurity/megalinter/releases)) - Docker image: `ghcr.io/oxsecurity/megalinter:v9` - GitHub Action: `oxsecurity/megalinter@v9` You can also use **beta** version (corresponding to the content of main branch) - Docker image: `ghcr.io/oxsecurity/megalinter:beta` - GitHub Action: `oxsecurity/megalinter@beta` --- - name: linting plan: - get: repo - task: linting config: platform: linux image_resource: type: docker-image source: repository: oxsecurity/megalinter tag: v9 inputs: - name: repo run: path: bash args: - -cxe - | cd repo export DEFAULT_WORKSPACE=$(pwd) bash -ex /entrypoint.sh ## doing this because concourse doesn't work as other CI systems # params: # PARALLEL: true # DISABLE: SPELL # APPLY_FIXES: all # DISABLE_ERRORS: true # VALIDATE_ALL_CODEBASE: true OR #### Use it as a reusable task Create a reusable Concourse task that can be used with multiple pipelines. 1. Create task file `task-linting.yaml` --- platform: linux image_resource: type: docker-image source: repository: oxsecurity/megalinter tag: v9 inputs: - name: repo ## uncomment this if you want reports as task output # output: # - name: reports # path: repo/megalinter-reports run: path: bash args: - -cxe - | cd repo export DEFAULT_WORKSPACE=$(pwd) bash -ex /entrypoint.sh 2. Use that `task-linting.yaml` task in your pipeline. Note: 1. Make sure `task-linting.yaml` is available in the `repo` input at the repository root. 2. Task `output` is **not** shown here. resources: - name: linting plan: - get: repo - task: linting file: repo/task-linting.yaml # params: # PARALLEL: true # DISABLE: SPELL # APPLY_FIXES: all # DISABLE_ERRORS: true # VALIDATE_ALL_CODEBASE: true | List of disabled descriptors keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | [**DISABLE_LINTERS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of disabled linters keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | [**DISABLE_ERRORS_LINTERS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of enabled but not blocking linters keys. All linters not in this list will be not blocking [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | [**ENABLE_ERRORS_LINTERS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of enabled and blocking linters keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | [**ENABLE**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of enabled descriptors keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | [**ENABLE_LINTERS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of enabled linters keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | **EXCLUDED_DIRECTORIES** | \[…many values…\] | List of excluded directory basenames. They're excluded at any nested level. | | **EXTENDS** | | Base `mega-linter.yml` config file(s) to extend local configuration from. Can be a single URL or a list of `.mega-linter.yml` config files URLs. Later files take precedence. | | **FAIL_IF_MISSING_LINTER_IN_FLAVOR** | `false` | If set to `true`, MegaLinter fails if a linter is missing in the selected flavor | | **FAIL_IF_UPDATED_SOURCES** | `false` | If set to `true`, MegaLinter fails if a linter or formatter has autofixed sources, even if there are no errors | | [**FILTER_REGEX_EXCLUDE**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-filtering.md) | `none` | Regular expression defining which files will be excluded from linting [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-filtering.md) .ex: `.*src/test.*`) | | [**FILTER_REGEX_INCLUDE**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-filtering.md) | `all` | Regular expression defining which files will be processed by linters [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-filtering.md) .ex: `.*src/.*`) | | **FLAVOR_SUGGESTIONS** | `true` | Provides suggestions about different MegaLinter flavors to use to improve runtime performances | | **FORMATTERS_DISABLE_ERRORS** | `true` | Formatter errors will be reported as errors (not warnings) if this variable is set to `false`. | | **GIT_AUTHORIZATION_BEARER** | | If set, calls git with **`Authorization: Bearer`+value** | | **GITHUB_WORKSPACE** | | Base directory for `REPORT_OUTPUT_FOLDER`, for user-defined linter rules location, for location of linted files if `DEFAULT_WORKSPACE` isn't set | | **IGNORE_GENERATED_FILES** | `false` | If set to `true`, MegaLinter will skip files containing `@generated` marker but without `@not-generated` marker (more info at [https://generated.at](https://generated.at/)) | | **IGNORE_GITIGNORED_FILES** | `true` | If set to `true`, MegaLinter will skip files ignored by Git using the `.gitignore` file. | | **JAVASCRIPT_DEFAULT_STYLE** | `standard` | Javascript default style to check/apply. `standard`,`prettier` | | **LINTER_RULES_PATH** | `.github/linters` | Directory for all linter configuration rules.
Can be a local folder or a remote URL (e.g., `https://raw.githubusercontent.com/some_org/some_repo/mega-linter-rules`). | | **LOG_FILE** | `mega-linter.log` | The file name for outputting logs. All output is sent to the log file regardless of `LOG_LEVEL`. Use `none` to not generate this file. | | **LOG_LEVEL** | `INFO` | How much output the script will generate to the console. One of `INFO`, `DEBUG`, `WARNING` or `ERROR`. | | **MARKDOWN_DEFAULT_STYLE** | `markdownlint` | Markdown default style to check/apply. `markdownlint`, `remark-lint`, `rumdl` | | **MEGALINTER_CONFIG** | `.mega-linter.yml` | Name of MegaLinter configuration file. Can be defined remotely, in that case set this environment variable with the remote URL of `.mega-linter.yml` config file | | **MEGALINTER_FILES_TO_LINT** | \[\] | Comma-separated list of files to analyze. Using this variable will bypass other file listing methods | | **PARALLEL** | `true` | Process linters in parallel to improve overall MegaLinter performance. If true, linters of same language or formats are grouped in the same parallel process to avoid lock issues if fixing the same files | | **PARALLEL_PROCESS_NUMBER** | | All available cores are used by default. If there are too many, decrease the number of used cores to enhance performance (example: `4`). | | [**PLUGINS**](#plugins) | \[\] | List of plugin urls to install and run during MegaLinter run | | [**POST_COMMANDS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-postcommands.md) | \[\] | Custom bash commands to run after linters | | [**PRE_COMMANDS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-precommands.md) | \[\] | Custom bash commands to run before linters | | **PRINT_ALPACA** | `true` | Enable printing alpaca image to console | | **PRINT_ALL_FILES** | `false` | Display all files analyzed by the linter instead of only the number. | | **PYTHON_DEFAULT_STYLE** | `black` | Python default style to check/apply. `black`,`ruff` | | **REPORT_OUTPUT_FOLDER** | `${GITHUB_WORKSPACE}/megalinter-reports` | Directory for generating report files. Set to `none` to skip generating reports. | | [**SECURED_ENV_VARIABLES**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-variables-security.md) | \[\] | Additional list of secured environment variables to hide when calling linters. | | [**SECURED_ENV_VARIABLES_DEFAULT**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-variables-security.md) | MegaLinter & CI platforms sensitive variables | List of secured environment variables to hide when calling linters. [Default list](https://github.com/oxsecurity/megalinter/tree/main/docs/config-variables-security.md). This is not recommended to override this variable, use SECURED_ENV_VARIABLES | | **SHOW_ELAPSED_TIME** | `false` | Displays elapsed time in reports | | **SHOW_SKIPPED_LINTERS** | `true` | Displays all disabled linters MegaLinter could have run. | | **SKIP_CLI_LINT_MODES** | \[\] | Comma-separated list of cli_lint_modes. To use if you want to skip linters with some CLI lint modes (ex: `file,project`). Available values: `file`,`cli_lint_mode`,`project`. | | **SKIP_LINTER_OUTPUT_SANITIZATION** | `false` | By default, MegaLinter sanitizes the output of every external command using Gitleaks public rules.
If you are on a private and secured repo, you can improve performances by setting this variable to `true`, but it will mean that if a linter output contains a secret, it will be visible in log files | | **TYPESCRIPT_DEFAULT_STYLE** | `standard` | Typescript default style to check/apply. `standard`,`prettier` | | **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. | | | **output_variables** | ENV variables to read from output after running the commands, and store in MegaLinter's ENV context so they can be reused in subsequent commands | `[]` | | **tag** | Tag defining at which command entry point the command will be run (available tags: `before_plugins`) | | | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| |
| [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 137 |   |
|
| [c_cpp](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/c_cpp.md) | Optimized for pure C/C++ projects | 60 |   |
|
| [ci_light](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/ci_light.md) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 24 |   |
|
| [cupcake](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/cupcake.md) | MegaLinter for the most commonly used languages | 93 |   |
|
| [documentation](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/documentation.md) | MegaLinter for documentation projects | 53 |   |
|
| [dotnet](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/dotnet.md) | Optimized for C, C++, C# or VB based projects | 68 |   |
|
| [dotnetweb](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/dotnetweb.md) | Optimized for C, C++, C# or VB based projects with JS/TS | 77 |   |
|
| [formatters](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/formatters.md) | Contains only formatters | 19 |   |
|
| [go](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/go.md) | Optimized for GO based projects | 55 |   |
|
| [java](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/java.md) | Optimized for JAVA based projects | 58 |   |
|
| [javascript](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/javascript.md) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 63 |   |
|
| [php](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/php.md) | Optimized for PHP based projects | 58 |   |
|
| [python](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/python.md) | Optimized for PYTHON based projects | 70 |   |
|
| [ruby](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/ruby.md) | Optimized for RUBY based projects | 54 |   |
|
| [rust](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/rust.md) | Optimized for RUST based projects | 54 |   |
|
| [salesforce](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/salesforce.md) | Optimized for Salesforce based projects | 57 |   |
|
| [security](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/security.md) | Optimized for security | 26 |   |
|
| [swift](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/swift.md) | Optimized for SWIFT based projects | 54 |   |
|
| [terraform](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/terraform.md) | Optimized for TERRAFORM based projects | 57 |   |
If you need a new flavor, [post an issue](https://github.com/oxsecurity/megalinter/issues) :wink:
You can also generate your own [custom flavors](https://megalinter.io/beta/custom-flavors/) to include exactly the linters you need in your MegaLinter Docker image.
| Name | Description | Author | Raw URL |
|:----------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [**jupyfmt**](https://github.com/kpj/jupyfmt#mega-linter-integration) | The uncompromising Jupyter notebook formatter | [Kim Philipp Jablonski](https://github.com/kpj) | [Descriptor](https://raw.githubusercontent.com/kpj/jupyfmt/master/mega-linter-plugin-jupyfmt/jupyfmt.megalinter-descriptor.yml) |
| [**linkcheck**](https://github.com/shiranr/linkcheck) | Plugin to check and validate markdown links exist and working | [Shiran Rubin](https://github.com/shiranr) | [Descriptor](https://raw.githubusercontent.com/shiranr/linkcheck/main/mega-linter-plugin-linkcheck/linkcheck.megalinter-descriptor.yml) |
| [**nitpick**](https://github.com/andreoliwa/nitpick#run-as-a-megalinter-plugin) | Command-line tool and flake8 plugin to enforce the same settings across multiple language-independent projects | [W. Augusto Andreoli](https://github.com/andreoliwa) | [Descriptor](https://raw.githubusercontent.com/andreoliwa/nitpick/master/mega-linter-plugin-nitpick/nitpick.megalinter-descriptor.yml) |
| [**mustache**](https://github.com/one-acre-fund/mega-linter-plugin-logstash) | Plugin to validate [Logstash](https://www.elastic.co/guide/en/logstash/current/configuration.html) pipeline definition files using [mustache](https://github.com/breml/logstash-config) | [Yann Jouanique](https://github.com/Yann-J) | [Descriptor](https://raw.githubusercontent.com/one-acre-fund/mega-linter-plugin-logstash/main/mega-linter-plugin-logstash/logstash.megalinter-descriptor.yml) |
| [**salt-lint**](https://github.com/ssc-services/mega-linter-plugin-salt) | Checks Salt State files (SLS) for best practices and behavior that could potentially be improved. | [Joachim Grimm](https://github.com/grimmjo) | [Descriptor](https://raw.githubusercontent.com/ssc-services/mega-linter-plugin-salt/main/mega-linter-plugin-salt/salt.megalinter-descriptor.yml) |
| [**docker-compose-linter**](https://github.com/wesley-dean/mega-linter-plugin-dclint/blob/main/README.md) | Plugin to lint docker-compose files | [Wesley Dean](https://github.com/wesley-dean) | [Descriptor](https://github.com/wesley-dean/mega-linter-plugin-dclint/blob/main/mega-linter-plugin-dclint/dclint.megalinter-descriptor.yml) |
| [**repolinter**](https://github.com/wesley-dean/mega-linter-plugin-repolinter/blob/main/README.md) | Plugin to run TODO Group's repolinter to look for repository best practices | [Wesley Dean](https://github.com/wesley-dean) | [Descriptor](https://github.com/wesley-dean/mega-linter-plugin-repolinter/blob/main/mega-linter-plugin-repolinter/repolinter.megalinter-descriptor.yml) |
| [**j2lint**](https://github.com/wesley-dean/mega-linter-plugin-j2lint/blob/main/README.md) | Plugin to lint Jinja2 files | [Wesley Dean](https://github.com/wesley-dean) | [Descriptor](https://github.com/wesley-dean/mega-linter-plugin-j2lint/blob/main/mega-linter-plugin-j2lint/j2lint.megalinter-descriptor.yml) |
| [**fmlint**](https://github.com/wesley-dean/mega-linter-plugin-fmlint/blob/main/README.md) | Plugin to lint YAML frontmatter in Markdown documents | [Wesley Dean](https://github.com/wesley-dean) | [Descriptor](https://github.com/wesley-dean/mega-linter-plugin-fmlint/blob/main/mega-linter-plugin-fmlint/fmlint.megalinter-descriptor.yml) |
Submit a Pull Request if you want your plugin to appear here :)
### Use external plugins
Add plugin URLs in the `PLUGINS` property of `.mega-linter.yml`. URLs must either begin with "https://" or take the form of "file://\", where \ points to a valid plugin descriptor file.
#### Example
PLUGINS:
- https://raw.githubusercontent.com/kpj/jupyfmt/master/mega-linter-plugin-jupyfmt/jupyfmt.megalinter-descriptor.yml
- file://.automation/test/mega-linter-plugin-test/test.megalinter-descriptor.yml
### Create your own plugin
You can implement your own descriptors and load them as plugins during MegaLinter runtime.
- Descriptor format is exactly the same as [MegaLinter embedded ones](https://github.com/oxsecurity/megalinter/tree/main/megalinter/descriptors) ([see JSON schema documentation](https://megalinter.io/json-schemas/descriptor.html))
- Plugin descriptor files must be named **\*\*.megalinter-descriptor.yml** and conform to the [MegaLinter JSON Schema](https://github.com/oxsecurity/megalinter/blob/main/megalinter/descriptors/schemas/megalinter-descriptor.jsonschema.json)
- Plugins must be hosted in a URL containing **\*\*/mega-linter-plugin-\*\*/**
- File URLs must conform to the same directory and file naming criteria as defined above.
#### Limitations
- For now, the only `install` attributes managed are `dockerfile` instructions starting by `RUN`
### Community Tools
Beyond plugins, the community has built additional tools that integrate with MegaLinter. These are independently maintained and **not** affiliated with the MegaLinter team.
| Name | Description | Author |
|:--------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------:|
| [**megalinter-mcp-server**](https://github.com/DownAtTheBottomOfTheMoleHole/megalinter-mcp) | An MCP server for running MegaLinter via [mega-linter-runner](https://megalinter.io/mega-linter-runner/). Provides 15 MCP tools for execution, discovery, and analysis. Works with GitHub Copilot Chat in VS Code and other MCP-compatible clients. Available on [npm](https://www.npmjs.com/package/@downatthebottomofthemolehole/megalinter-mcp-server). | [DownAtTheBottomOfTheMoleHole](https://github.com/DownAtTheBottomOfTheMoleHole) |
| [**megalinter-ado**](https://github.com/DownAtTheBottomOfTheMoleHole/megalinter-ado) | Azure DevOps extension providing a native pipeline task for running MegaLinter. Supports flavor selection, auto-fix PRs, and PR comments. Available on the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=DownAtTheBottomOfTheMoleHole.megalinter-ado). | [DownAtTheBottomOfTheMoleHole](https://github.com/DownAtTheBottomOfTheMoleHole) |
### English articles
| Article | Author |
|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Looking for the best CI/CD Pipeline Linting Tool? Try MegaLinter!](https://medium.com/@SeasonedDeveloper/looking-for-the-best-ci-cd-pipeline-linting-tool-try-megalinter-d89c9eba850d){target=_blank} | [Seasoned Developer](https://medium.com/@SeasonedDeveloper){target=_blank} |
| [Integrating MegaLinter to Automate Linting Across Multiple Codebases. A Technical Description](https://medium.com/datamindedbe/integrating-megalinter-to-automate-linting-across-multiple-codebases-a-technical-description-a200bb235b71){target=_blank} | [Thorsten Foltz](https://www.linkedin.com/in/thorstenfoltz/){target=_blank} |
| [MegaLinter Performance Tuning for Maximum Efficiency](https://flexion.us/blog/megalinter-performance-tuning/){target=_blank} | [Wes Dean](https://github.com/wesley-dean){target=_blank} |
| [10 MegaLinter Tips and Tricks Unlock its Full Potential](https://flexion.us/blog/megalinter-tips-and-tricks/){target=_blank} | [Wes Dean](https://github.com/wesley-dean){target=_blank} |
| [30 Seconds to Setup MegaLinter: Your Go-To Tool for Automated Code Quality](https://medium.com/@caodanju/30-seconds-to-setup-megalinter-your-go-to-tool-for-automated-code-quality-and-iac-security-969d90a5a99c){target=_blank} | [Peng Cao](https://www.linkedin.com/in/peng-cao-83b6a2103/) |
| [Introducing MegaLinter: Streamlining Code Quality Checks Across Multiple Languages](https://cloudtuned.hashnode.dev/introducing-megalinter-streamlining-code-quality-checks-across-multiple-languages){target=_blank} | [Cloud Tuned](https://cloudtuned.hashnode.dev/){target=_blank} |
| [Infrastructure as Code GitHub Codespace Template](https://luke.geek.nz/azure/iac-github-codespace/){target=_blank} | [Luke Murray](https://www.linkedin.com/in/ljmurray/){target=_blank} |
| [5 ways MegaLinter upped our DevSecOps game](https://flexion.us/blog/5-ways-megalinter-upped-our-devsecops-game/){target=_blank} | [Wes Dean](https://github.com/wesley-dean){target=_blank} |
| [Achieve Code Consistency: MegaLinter Integration in Azure DevOps](https://techcommunity.microsoft.com/t5/azure-devops-blog/achieve-code-consistency-megalinter-integration-in-azure-devops/ba-p/3939448){target=_blank} | [Don Koning](https://techcommunity.microsoft.com/t5/user/viewprofilepage/user-id/2039143#profile){target=_blank} on [Microsoft Tech Community](https://techcommunity.microsoft.com/){target=_blank} |
| [MegaLinter in Azure DevOps](https://jamescook.dev/megalinter-in-azure-devops){target=_blank} | [James Cook](https://www.linkedin.com/in/cookjames/){target=_blank} |
| [Maximize your code consistency with Megalinter](https://codewithme.cloud/posts/2023/08/maximize-your-code-consistency-with-megalinter/){target=_blank} | [Tor Ivar Asbølmo](https://www.linkedin.com/in/torivara/){target=_blank} on [codewithme.cloud](https://codewithme.cloud){target=_blank} |
| [8 Tools to Scan Node.js Applications for Security Vulnerability](https://geekflare.com/nodejs-security-scanner/){target=_blank} | [Chandan Kumar](https://www.linkedin.com/in/chandank){target=_blank} on [GeekFlare.com](https://geekflare.com/){target=_blank} |
| [Use the Workflows JSON schema in your IDE](https://cloud.google.com/workflows/docs/use-workflows-json-schema-with-ide){target=_blank} | [Google Cloud](https://cloud.google.com/){target=_blank} |
| [Level up your Unity Packages with CI/CD](https://medium.com/@RunningMattress/level-up-your-unity-packages-with-ci-cd-9498d2791211){target=_blank} | [RunningMattress](https://medium.com/@RunningMattress){target=_blank} |
| [GitHub Actions: sharing your secrets with third-party actions](https://secure-git.guide/013_Sharing-GitHub-secrets-with-third-party-actions){target=_blank} | [Constantin Bosse](https://github.com/cgbosse){target=_blank} and [Stephen Hosom](https://github.com/hosom){target=_blank} |
| [Talk about the Kotlin plugins Kover, Ktlint and Detekt. Made for the AmsterdamJUG meetup.](https://www.slideshare.net/SimonedeGijt/pluginandplayv4amsterdamjugpptx-251796070){target=_blank} | [Simone de Gijt](https://github.com/SimonedeGijt){target=_blank} |
| [Linting - What is all the fluff about?](https://rse.shef.ac.uk/blog/2022-04-19-linting/){target=_blank} | [Neil Shepard](https://www.linkedin.com/in/neil-shephard-a43a83211/?originalSubdomain=uk){target=_blank}, University Of Sheffield |
| [How to apply security at the source using GitOps](https://dev.to/minwi/how-to-apply-security-at-the-source-using-gitops-21bk){target=_blank} | [Edu Minguez](https://dev.to/minwi){target=_blank} |
| [How to linter basic things like trailing whitespaces and newlines](https://nklya.medium.com/hot-to-linter-basic-things-like-trailing-whitespaces-and-newlines-7b40da8f688d){target=_blank} | [Nicolai Antiferov](https://nklya.medium.com/){target=_blank} |
| [Node.js Coding Standard Tools with MegaLinter on Gitlab CI](https://javascript.plainenglish.io/node-js-coding-standard-tools-with-megalinter-on-gitlab-ci-a43b55915811){target=_blank} | [Albion Bame](https://www.linkedin.com/in/albion-bame/){target=_blank} |
| [Linting a Jekyll blog with MegaLinter](https://www.ayyjohn.com/posts/linting-a-jekyll-blog-with-mega-linter){target=_blank} | [Alec Johnson](https://www.linkedin.com/in/ayyjohn/){target=_blank} |
| [MegaLinter sells his soul and joins OX Security](https://nicolas.vuillamy.fr/megalinter-sells-his-soul-and-joins-ox-security-2a91a0027628){target=_blank} | [Nicolas Vuillamy](https://nvuillam.github.io){target=_blank} |
| [Limit your technical debt and secure your code base using MegaLinter](https://nicolas.vuillamy.fr/improve-uniformize-and-secure-your-code-base-with-megalinter-62ebab422c1){target=_blank} | [Nicolas Vuillamy](https://nvuillam.github.io){target=_blank} |
### French articles
| Article | Author |
|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------|
| [MegaLinter](https://blog.stephane-robert.info/docs/developper/autres-outils/linters/megalinter/){target=_blank} | [Stéphane Robert](https://www.linkedin.com/in/stephanerobert1/), [3DS OutScale](https://fr.outscale.com/){target=_blank} |
| [MegaLinter: un linter pour les gouverner tous](https://blog.wescale.fr/megalinter-un-linter-pour-les-gouverner-tous){target=_blank} | [Guillaume Arnaud](https://www.linkedin.com/in/guillaume-arnaud/), [WeScale](https://www.wescale.fr/){target=_blank} |
| [MegaLinter, votre meilleur ami pour un code de qualité](https://www.neosoft.fr/nos-publications/blog-tech/mega-linter-votre-meilleur-ami-pour-un-code-de-qualite/?utm_source=twitter&utm_medium=organic&utm_campaign=article-mega-linter){target=_blank} | [Thomas Sanson](https://github.com/ThomasSanson){target=_blank} |
### Japanese articles
| Article | Author |
|:---------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------|
| [Try using MegaLinter](https://future-architect.github.io/articles/20231129a/?s=03){target=_blank} | [Takashi Minayaga](https://future-architect.github.io/authors/%E5%AE%AE%E6%B0%B8%E5%B4%87%E5%8F%B2){target=_blank} |
### Videos
- [(Brazilian) Qualidade e Segurança em Código com MegaLinter: automatizando análises em MAUI com GitHub Actions](https://www.youtube.com/watch?v=0JGusPYE4zc), by [Canal dotNET](https://www.youtube.com/@CanaldotNET)
- [(Brazilian) MegaLinter: Como Automatizar a Qualidade do Código para Todas Plataformas](https://www.youtube.com/watch?v=YSdZ3atC2j4), by [Codando TV](https://www.youtube.com/@hackitectsplayground)
- [How to: Secrets scanning](https://youtu.be/iBMWAk5QIfM?si=EVcJilkz7Y2jdn6e&t=649), by [Hackitect's playground](https://www.youtube.com/@hackitectsplayground)
- [How to use MegaLinter with Jenkins](https://www.youtube.com/watch?v=KhkNf2tQ3hM), by [Darin Pope](https://www.linkedin.com/in/darinpope/) / [Cloudbees](https://www.cloudbees.com/)
- (FR) MegaLinter presentation at [DevCon 20 / Programmez Magazine](https://www.programmez.com/page-devcon/devcon-20-100-securite-qualite-du-code), by [Nicolas Vuillamy](https://github.com/nvuillam)
- Code quality - Ep01 - MegaLinter, one linter to rule them all, by [Bertrand Thomas](https://github.com/devpro)
- DevSecOps Webinar using MegaLinter, by [5.15 Technologies](https://www.515tech.com/){target=_blank}
- Ortelius Architecture Meeting, with a review of MegaLinter, by [Steve Taylor](https://github.com/sbtaylor15){target=_blank} from [Ortelius](https://ortelius.io/)
### Web Sites
- [analysis-tools.dev](https://analysis-tools.dev/tool/mega-linter){target=_blank}
- [awesome-linters](https://github.com/caramelomartins/awesome-linters#language-agnostic){target=_blank}
- [schemastore.org](https://www.schemastore.org/){target=_blank}
- [abhith.net](https://www.abhith.net/recommended/){target=_blank}
- [my-devops-lab.com](https://www.my-devops-lab.com/tools){target=_blank}
### Linters
- [checkmake](https://github.com/checkmake/checkmake?tab=readme-ov-file#megalinter){target=_blank}
- [checkstyle](https://checkstyle.org/index.html#Related_Tools_Active_Tools){target=_blank}
- [clj-kondo](https://github.com/borkdude/clj-kondo/blob/master/doc/ci-integration.md#github){target=_blank}
- [cljstyle](https://github.com/greglook/cljstyle/blob/main/doc/integrations.md){target=_blank}
- [cspell](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell#mega-linter){target=_blank}
- [detekt](https://detekt.dev/docs/intro){target=_blank}
- [djlint](https://djlint.com/docs/integrations/#megalinter){target=_blank}
- [dotenv-linter](https://dotenv-linter.github.io/#/integrations/mega_linter){target=_blank}
- [editorconfig-checker](https://github.com/editorconfig-checker/editorconfig-checker#mega-linter){target=_blank}
- [eslint](https://eslint.org/docs/latest/use/integrations#source-control){target=_blank}
- [eslint-plugin-jsonc](https://eslint.org/docs/latest/use/integrations#source-control){target=_blank}
- [hadolint](https://github.com/hadolint/hadolint/blob/master/docs/INTEGRATION.md#mega-linter){target=_blank}
- [htmlhint](https://htmlhint.com/integrations/task-runner/){target=_blank}
- [jscpd](https://github.com/kucherenko/jscpd#who-uses-jscpd){target=_blank}
- [kics](https://docs.kics.io/latest/integrations/){target=_blank}
- [ktlint](https://github.com/pinterest/ktlint#-with-continuous-integration){target=_blank}
- [lintr](https://lintr.r-lib.org/articles/continuous-integration.html){target=_blank}
- [npm-groovy-lint](https://nvuillam.github.io/npm-groovy-lint/#mega-linter){target=_blank}
- [npm-package-json-lint](https://npmpackagejsonlint.org/docs/integrations#megalinter){target=_blank}
- [pmd](https://pmd.sourceforge.io/pmd-6.55.0/pmd_userdocs_tools_ci.html){target=_blank}
- [rst-lint](https://github.com/twolfson/restructuredtext-lint/wiki/Integration-in-other-tools#integration-in-other-tools){target=_blank}
- [rstcheck](https://rstcheck.readthedocs.io/en/latest/usage/integration/#use-with-mega-linter){target=_blank}
- [rubocop](https://docs.rubocop.org/rubocop/integration_with_other_tools.html#mega-linter-integration){target=_blank}
- [scalafix](https://scalacenter.github.io/scalafix/docs/users/installation.html#plugins-for-other-build-tools){target=_blank}
- [secretlint](https://github.com/secretlint/secretlint#mega-linter){target=_blank}
## License
- [GNU Affero General Public License](https://github.com/oxsecurity/megalinter/blob/main/LICENSE)
[_BASH_EXEC_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_bash_exec.md) | | |
[_BASH_SHELLCHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shellcheck.md) | [](https://github.com/koalaman/shellcheck)  | |
[_BASH_SHFMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shfmt.md) | [](https://github.com/mvdan/sh)  | |
[_C_CPPCHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cppcheck.md) | | |
[_C_CPPLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cpplint.md) | [](https://github.com/cpplint/cpplint) | |
[_C_CLANG_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_clang_format.md) | [](https://github.com/llvm/llvm-project)  | |
[_CLOJURE_CLJ_KONDO_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_clj_kondo.md) | [](https://github.com/borkdude/clj-kondo) | |
[_CLOJURE_CLJSTYLE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_cljstyle.md) | [](https://github.com/greglook/cljstyle)  | |
[_COFFEE_COFFEELINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md) | [](https://github.com/clutchski/coffeelint) | |
[_CPP_CPPCHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cppcheck.md) | | |
[_CPP_CPPLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cpplint.md) | [](https://github.com/cpplint/cpplint) | |
[_CPP_CLANG_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_clang_format.md) | [](https://github.com/llvm/llvm-project)  | |
[_CSHARP_DOTNET_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md) | [](https://github.com/dotnet/sdk)  | |
[_CSHARP_CSHARPIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_csharpier.md) | [](https://github.com/belav/csharpier)  | |
[_CSHARP_ROSLYNATOR_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_roslynator.md) | [](https://github.com/dotnet/Roslynator)  | |
[_DART_DARTANALYZER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md) | [](https://github.com/dart-lang/sdk) | |
[_GO_GOLANGCI_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md) | [](https://github.com/golangci/golangci-lint)   | |
[_GO_REVIVE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_revive.md) | [](https://github.com/mgechev/revive)  | |
[_GROOVY_NPM_GROOVY_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md) | [](https://github.com/nvuillam/npm-groovy-lint)   | |
[_JAVA_CHECKSTYLE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_checkstyle.md) | [](https://github.com/checkstyle/checkstyle)  | |
[_JAVA_PMD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_pmd.md) | [](https://github.com/pmd/pmd)  | |
[_JAVASCRIPT_ES_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_eslint.md) | [](https://github.com/eslint/eslint)   | |
[_JAVASCRIPT_STANDARD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_standard.md) | [](https://github.com/standard/standard)  | |
[_JAVASCRIPT_PRETTIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_prettier.md) | [](https://github.com/prettier/prettier)  | |
[_JSX_ESLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx_eslint.md) | [](https://github.com/Rel1cx/eslint-react)   | |
[_KOTLIN_KTLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_ktlint.md) | [](https://github.com/pinterest/ktlint)   | |
[_KOTLIN_DETEKT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_detekt.md) | [](https://github.com/detekt/detekt)  | |
[_LUA_LUACHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_luacheck.md) | [](https://github.com/lunarmodules/luacheck) | |
[_LUA_SELENE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_selene.md) |  [](https://github.com/Kampfkarren/selene) | |
[_LUA_STYLUA_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_stylua.md) | [](https://github.com/JohnnyMorganz/StyLua) | |
[_MAKEFILE_CHECKMAKE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/makefile_checkmake.md) |  [](https://github.com/checkmake/checkmake) | |
[_PERL_PERLCRITIC_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/perl_perlcritic.md) | [](https://github.com/Perl-Critic/Perl-Critic) | |
[_PHP_PHPCS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phpcs.md) | [](https://github.com/PHPCSStandards/PHP_CodeSniffer)  | |
[_PHP_PHPSTAN_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phpstan.md) | [](https://github.com/phpstan/phpstan)  | |
[_PHP_PSALM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_psalm.md) | [](https://github.com/vimeo/psalm)  | |
[_PHP_PHPLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phplint.md) | [](https://github.com/overtrue/phplint)  | |
[_PHP_PHPCSFIXER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_php_cs_fixer.md) | [](https://github.com/PHP-CS-Fixer/PHP-CS-Fixer) | |
[_POWERSHELL_POWERSHELL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/powershell_powershell.md) | [](https://github.com/PowerShell/PSScriptAnalyzer)  | |
[_POWERSHELL_POWERSHELL_FORMATTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/powershell_powershell_formatter.md) | [](https://github.com/PowerShell/PSScriptAnalyzer)  | |
[_PYTHON_PYLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_pylint.md) | [](https://github.com/pylint-dev/pylint) | |
[_PYTHON_BLACK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_black.md) | [](https://github.com/psf/black)  | |
[_PYTHON_FLAKE8_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_flake8.md) | [](https://github.com/PyCQA/flake8) | |
[_PYTHON_ISORT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_isort.md) | [](https://github.com/PyCQA/isort)  | |
[_PYTHON_BANDIT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_bandit.md) | [](https://github.com/PyCQA/bandit)  | |
[_PYTHON_MYPY_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_mypy.md) | [](https://github.com/python/mypy) | |
[_PYTHON_NBQA_MYPY_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_nbqa.md) | [](https://github.com/nbQA-dev/nbQA) | |
[_PYTHON_PYRIGHT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_pyright.md) | [](https://github.com/microsoft/pyright) | |
[_PYTHON_RUFF_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_ruff.md) | [](https://github.com/astral-sh/ruff)   | |
[_PYTHON_RUFF_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_ruff_format.md) | [](https://github.com/astral-sh/ruff)  | |
[_R_LINTR_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/r_lintr.md) | [](https://github.com/r-lib/lintr) | |
[_RAKU_RAKU_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/raku_raku.md) | [](https://github.com/rakudo/rakudo) | |
[_RUBY_RUBOCOP_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ruby_rubocop.md) | [](https://github.com/rubocop-hq/rubocop)  | |
[_RUST_CLIPPY_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rust_clippy.md) | [](https://github.com/rust-lang/rust-clippy) | |
[_SALESFORCE_CODE_ANALYZER_APEX_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_code_analyzer_apex.md) | [](https://github.com/forcedotcom/code-analyzer) | |
[_SALESFORCE_CODE_ANALYZER_AURA_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_code_analyzer_aura.md) | [](https://github.com/forcedotcom/code-analyzer) | |
[_SALESFORCE_CODE_ANALYZER_LWC_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_code_analyzer_lwc.md) | [](https://github.com/forcedotcom/code-analyzer) | |
[_SALESFORCE_SFDX_SCANNER_APEX_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_apex.md) |   [](https://github.com/forcedotcom/code-analyzer) | |
[_SALESFORCE_SFDX_SCANNER_AURA_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_aura.md) |   [](https://github.com/forcedotcom/code-analyzer) | |
[_SALESFORCE_SFDX_SCANNER_LWC_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_lwc.md) |   [](https://github.com/forcedotcom/code-analyzer) | |
[_SALESFORCE_LIGHTNING_FLOW_SCANNER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_lightning_flow_scanner.md) |  [](https://github.com/Flow-Scanner/lightning-flow-scanner-cli) | |
[_SCALA_SCALAFIX_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/scala_scalafix.md) | [](https://github.com/scalacenter/scalafix) | |
[_SQL_SQLFLUFF_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md) | [](https://github.com/sqlfluff/sqlfluff)  | |
[_SQL_TSQLLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_tsqllint.md) | [](https://github.com/tsqllint/tsqllint) | |
[_SWIFT_SWIFTLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md) | [](https://github.com/realm/SwiftLint)  | |
[_TSX_ESLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tsx_eslint.md) | [](https://github.com/Rel1cx/eslint-react)   | |
[_TYPESCRIPT_ES_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_eslint.md) | [](https://github.com/typescript-eslint/typescript-eslint)   | |
[_TYPESCRIPT_STANDARD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_ts_standard.md) | [](https://github.com/standard/ts-standard)  | |
[_TYPESCRIPT_PRETTIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_prettier.md) | [](https://github.com/prettier/prettier)  | |
[_VBDOTNET_DOTNET_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md) | [](https://github.com/dotnet/sdk)  | ### Formats | | Format | Linter | Additional | |:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| |
[_CSS_STYLELINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/css_stylelint.md) | [](https://github.com/stylelint/stylelint)  | |
[_ENV_DOTENV_LINTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/env_dotenv_linter.md) | [](https://github.com/dotenv-linter/dotenv-linter)  | |
[_GRAPHQL_GRAPHQL_SCHEMA_LINTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/graphql_graphql_schema_linter.md) | [](https://github.com/cjoudrey/graphql-schema-linter) | |
[_HTML_DJLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/html_djlint.md) | [](https://github.com/Riverside-Healthcare/djlint) | |
[_HTML_HTMLHINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/html_htmlhint.md) | [](https://github.com/htmlhint/HTMLHint) | |
[_JSON_JSONLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_jsonlint.md) | [](https://github.com/prantlf/jsonlint) | |
[_JSON_ESLINT_PLUGIN_JSONC_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_eslint_plugin_jsonc.md) |   [](https://github.com/ota-meshi/eslint-plugin-jsonc)   | |
[_JSON_V8R_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_v8r.md) | [](https://github.com/chris48s/v8r) | |
[_JSON_PRETTIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_prettier.md) | [](https://github.com/prettier/prettier)  | |
[_JSON_NPM_PACKAGE_JSON_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_npm_package_json_lint.md) | [](https://github.com/tclindner/npm-package-json-lint) | |
[_LATEX_CHKTEX_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/latex_chktex.md) | | |
[_MARKDOWN_MARKDOWNLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdownlint.md) | [](https://github.com/DavidAnson/markdownlint)  | |
[_MARKDOWN_REMARK_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_remark_lint.md) |  [](https://github.com/remarkjs/remark-lint)  | |
[_MARKDOWN_MARKDOWN_TABLE_FORMATTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdown_table_formatter.md) | [](https://github.com/nvuillam/markdown-table-formatter)  | |
[_MARKDOWN_RUMDL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_rumdl.md) | [](https://github.com/rvben/rumdl)   | |
[_PROTOBUF_PROTOLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/protobuf_protolint.md) | [](https://github.com/yoheimuta/protolint)  | |
[_RST_RST_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rst_lint.md) | [](https://github.com/twolfson/restructuredtext-lint) | |
[_RST_RSTCHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rstcheck.md) | [](https://github.com/myint/rstcheck) | |
[_RST_RSTFMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rstfmt.md) |  | |
[_XML_XMLLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/xml_xmllint.md) |  | |
[_YAML_PRETTIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_prettier.md) | [](https://github.com/prettier/prettier)  | |
[_YAML_YAMLLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_yamllint.md) | [](https://github.com/adrienverge/yamllint) | |
[_YAML_V8R_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_v8r.md) | [](https://github.com/chris48s/v8r) | ### Tooling formats | | Tooling format | Linter | Additional | |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| |
[_ACTION_ACTIONLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md) | [](https://github.com/rhysd/actionlint) | |
[_ACTION_ZIZMOR_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_zizmor.md) | [](https://github.com/zizmorcore/zizmor)  | |
[_ANSIBLE_ANSIBLE_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md) | [](https://github.com/ansible/ansible-lint)  | |
[_API_SPECTRAL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/api_spectral.md) |  [](https://github.com/stoplightio/spectral)  | |
[_ARM_ARM_TTK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md) | [](https://github.com/Azure/arm-ttk) | |
[_BICEP_BICEP_LINTER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bicep_bicep_linter.md) | [](https://github.com/Azure/bicep) | |
[_CLOUDFORMATION_CFN_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md) | [](https://github.com/aws-cloudformation/cfn-lint)  | |
[_DOCKERFILE_HADOLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md) | [](https://github.com/hadolint/hadolint)  | |
[_EDITORCONFIG_EDITORCONFIG_CHECKER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md) | [](https://github.com/editorconfig-checker/editorconfig-checker) | |
[_GHERKIN_GHERKIN_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md) | [](https://github.com/gherkin-lint/gherkin-lint) | |
[_KUBERNETES_KUBECONFORM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md) | [](https://github.com/yannh/kubeconform) | |
[_KUBERNETES_HELM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_helm.md) | [](https://github.com/helm/helm) | |
[_KUBERNETES_KUBESCAPE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubescape.md) | [](https://github.com/kubescape/kubescape)  | |
[_PUPPET_PUPPET_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md) |  [](https://github.com/puppetlabs/puppet-lint)  | |
[_ROBOTFRAMEWORK_ROBOCOP_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/robotframework_robocop.md) | [](https://github.com/MarketSquare/robotframework-robocop)   | |
[_SNAKEMAKE_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md) | [](https://github.com/snakemake/snakemake) | |
[_SNAKEMAKE_SNAKEFMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md) | [](https://github.com/snakemake/snakefmt)  | |
[_TEKTON_TEKTON_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md) | [](https://github.com/IBM/tekton-lint) | |
[_TERRAFORM_TFLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md) | [](https://github.com/terraform-linters/tflint)  | |
[_TERRAFORM_TERRASCAN_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md) |   [](https://github.com/tenable/terrascan)  | |
[_TERRAFORM_TERRAGRUNT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md) | [](https://github.com/gruntwork-io/terragrunt)  | |
[_TERRAFORM_TERRAFORM_FMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md) | [](https://github.com/hashicorp/terraform)  | ### Other | | Code quality checker | Linter | Additional | |:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| |
[_COPYPASTE_JSCPD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md) | [](https://github.com/kucherenko/jscpd) | |
[_REPOSITORY_CHECKOV_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_checkov.md) | [](https://github.com/bridgecrewio/checkov)  | |
[_REPOSITORY_DEVSKIM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md) | [](https://github.com/microsoft/DevSkim)  | |
[_REPOSITORY_DUSTILOCK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md) | [](https://github.com/Checkmarx/dustilock)  | |
[_REPOSITORY_GIT_DIFF_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md) | [](https://github.com/git/git) | |
[_REPOSITORY_GITLEAKS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md) |  [](https://github.com/gitleaks/gitleaks)  | |
[_REPOSITORY_BETTERLEAKS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_betterleaks.md) | [](https://github.com/betterleaks/betterleaks)  | |
[_REPOSITORY_GRYPE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_grype.md) |  [](https://github.com/anchore/grype)  | |
[_REPOSITORY_KICS_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_kics.md) |  [](https://github.com/checkmarx/kics)  | |
[_REPOSITORY_LS_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_ls_lint.md) | [](https://github.com/loeffel-io/ls-lint) | |
[_REPOSITORY_OSV_SCANNER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_osv_scanner.md) | [](https://github.com/google/osv-scanner) | |
[_REPOSITORY_SECRETLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md) | [](https://github.com/secretlint/secretlint)  | |
[_REPOSITORY_SEMGREP_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md) | [](https://github.com/returntocorp/semgrep)  | |
[_REPOSITORY_SYFT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md) | [](https://github.com/anchore/syft)  | |
[_REPOSITORY_TRIVY_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md) | [](https://github.com/aquasecurity/trivy)  | |
[_REPOSITORY_TRIVY_SBOM_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy_sbom.md) | [](https://github.com/aquasecurity/trivy)  | |
[_REPOSITORY_TRUFFLEHOG_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trufflehog.md) | [](https://github.com/trufflesecurity/trufflehog) | |
[_REPOSITORY_KINGFISHER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_kingfisher.md) | [](https://github.com/mongodb/kingfisher)  | |
[_SPELL_CSPELL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md) | [](https://github.com/streetsidesoftware/cspell) | |
[_SPELL_PROSELINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_proselint.md) | [](https://github.com/amperser/proselint) | |
[_SPELL_VALE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_vale.md) | [](https://github.com/errata-ai/vale) | |
[_SPELL_LYCHEE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_lychee.md) | [](https://github.com/lycheeverse/lychee) | |
[_SPELL_CODESPELL_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_codespell.md) | [](https://github.com/codespell-project/codespell)  | The following instructions examples are using latest MegaLinter stable version (**v9** , always corresponding to the [latest release](https://github.com/oxsecurity/megalinter/releases)) - Docker image: `ghcr.io/oxsecurity/megalinter:v9` - GitHub Action: `oxsecurity/megalinter@v9` You can also use **beta** version (corresponding to the content of main branch) - Docker image: `ghcr.io/oxsecurity/megalinter:beta` - GitHub Action: `oxsecurity/megalinter@beta` --- - name: linting plan: - get: repo - task: linting config: platform: linux image_resource: type: docker-image source: repository: oxsecurity/megalinter tag: v9 inputs: - name: repo run: path: bash args: - -cxe - | cd repo export DEFAULT_WORKSPACE=$(pwd) bash -ex /entrypoint.sh ## doing this because concourse doesn't work as other CI systems # params: # PARALLEL: true # DISABLE: SPELL # APPLY_FIXES: all # DISABLE_ERRORS: true # VALIDATE_ALL_CODEBASE: true OR #### Use it as a reusable task Create a reusable Concourse task that can be used with multiple pipelines. 1. Create task file `task-linting.yaml` --- platform: linux image_resource: type: docker-image source: repository: oxsecurity/megalinter tag: v9 inputs: - name: repo ## uncomment this if you want reports as task output # output: # - name: reports # path: repo/megalinter-reports run: path: bash args: - -cxe - | cd repo export DEFAULT_WORKSPACE=$(pwd) bash -ex /entrypoint.sh 2. Use that `task-linting.yaml` task in your pipeline. Note: 1. Make sure `task-linting.yaml` is available in the `repo` input at the repository root. 2. Task `output` is **not** shown here. resources: - name: linting plan: - get: repo - task: linting file: repo/task-linting.yaml # params: # PARALLEL: true # DISABLE: SPELL # APPLY_FIXES: all # DISABLE_ERRORS: true # VALIDATE_ALL_CODEBASE: true | List of disabled descriptors keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | [**DISABLE_LINTERS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of disabled linters keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | [**DISABLE_ERRORS_LINTERS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of enabled but not blocking linters keys. All linters not in this list will be not blocking [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | [**ENABLE_ERRORS_LINTERS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of enabled and blocking linters keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | [**ENABLE**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of enabled descriptors keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | [**ENABLE_LINTERS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | List of enabled linters keys [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-activation.md) | | **EXCLUDED_DIRECTORIES** | \[…many values…\] | List of excluded directory basenames. They're excluded at any nested level. | | **EXTENDS** | | Base `mega-linter.yml` config file(s) to extend local configuration from. Can be a single URL or a list of `.mega-linter.yml` config files URLs. Later files take precedence. | | **FAIL_IF_MISSING_LINTER_IN_FLAVOR** | `false` | If set to `true`, MegaLinter fails if a linter is missing in the selected flavor | | **FAIL_IF_UPDATED_SOURCES** | `false` | If set to `true`, MegaLinter fails if a linter or formatter has autofixed sources, even if there are no errors | | [**FILTER_REGEX_EXCLUDE**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-filtering.md) | `none` | Regular expression defining which files will be excluded from linting [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-filtering.md) .ex: `.*src/test.*`) | | [**FILTER_REGEX_INCLUDE**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-filtering.md) | `all` | Regular expression defining which files will be processed by linters [(more info)](https://github.com/oxsecurity/megalinter/tree/main/docs/config-filtering.md) .ex: `.*src/.*`) | | **FLAVOR_SUGGESTIONS** | `true` | Provides suggestions about different MegaLinter flavors to use to improve runtime performances | | **FORMATTERS_DISABLE_ERRORS** | `true` | Formatter errors will be reported as errors (not warnings) if this variable is set to `false`. | | **GIT_AUTHORIZATION_BEARER** | | If set, calls git with **`Authorization: Bearer`+value** | | **GITHUB_WORKSPACE** | | Base directory for `REPORT_OUTPUT_FOLDER`, for user-defined linter rules location, for location of linted files if `DEFAULT_WORKSPACE` isn't set | | **IGNORE_GENERATED_FILES** | `false` | If set to `true`, MegaLinter will skip files containing `@generated` marker but without `@not-generated` marker (more info at [https://generated.at](https://generated.at/)) | | **IGNORE_GITIGNORED_FILES** | `true` | If set to `true`, MegaLinter will skip files ignored by Git using the `.gitignore` file. | | **JAVASCRIPT_DEFAULT_STYLE** | `standard` | Javascript default style to check/apply. `standard`,`prettier` | | **LINTER_RULES_PATH** | `.github/linters` | Directory for all linter configuration rules.
Can be a local folder or a remote URL (e.g., `https://raw.githubusercontent.com/some_org/some_repo/mega-linter-rules`). | | **LOG_FILE** | `mega-linter.log` | The file name for outputting logs. All output is sent to the log file regardless of `LOG_LEVEL`. Use `none` to not generate this file. | | **LOG_LEVEL** | `INFO` | How much output the script will generate to the console. One of `INFO`, `DEBUG`, `WARNING` or `ERROR`. | | **MARKDOWN_DEFAULT_STYLE** | `markdownlint` | Markdown default style to check/apply. `markdownlint`, `remark-lint`, `rumdl` | | **MEGALINTER_CONFIG** | `.mega-linter.yml` | Name of MegaLinter configuration file. Can be defined remotely, in that case set this environment variable with the remote URL of `.mega-linter.yml` config file | | **MEGALINTER_FILES_TO_LINT** | \[\] | Comma-separated list of files to analyze. Using this variable will bypass other file listing methods | | **PARALLEL** | `true` | Process linters in parallel to improve overall MegaLinter performance. If true, linters of same language or formats are grouped in the same parallel process to avoid lock issues if fixing the same files | | **PARALLEL_PROCESS_NUMBER** | | All available cores are used by default. If there are too many, decrease the number of used cores to enhance performance (example: `4`). | | [**PLUGINS**](#plugins) | \[\] | List of plugin urls to install and run during MegaLinter run | | [**POST_COMMANDS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-postcommands.md) | \[\] | Custom bash commands to run after linters | | [**PRE_COMMANDS**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-precommands.md) | \[\] | Custom bash commands to run before linters | | **PRINT_ALPACA** | `true` | Enable printing alpaca image to console | | **PRINT_ALL_FILES** | `false` | Display all files analyzed by the linter instead of only the number. | | **PYTHON_DEFAULT_STYLE** | `black` | Python default style to check/apply. `black`,`ruff` | | **REPORT_OUTPUT_FOLDER** | `${GITHUB_WORKSPACE}/megalinter-reports` | Directory for generating report files. Set to `none` to skip generating reports. | | [**SECURED_ENV_VARIABLES**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-variables-security.md) | \[\] | Additional list of secured environment variables to hide when calling linters. | | [**SECURED_ENV_VARIABLES_DEFAULT**](https://github.com/oxsecurity/megalinter/tree/main/docs/config-variables-security.md) | MegaLinter & CI platforms sensitive variables | List of secured environment variables to hide when calling linters. [Default list](https://github.com/oxsecurity/megalinter/tree/main/docs/config-variables-security.md). This is not recommended to override this variable, use SECURED_ENV_VARIABLES | | **SHOW_ELAPSED_TIME** | `false` | Displays elapsed time in reports | | **SHOW_SKIPPED_LINTERS** | `true` | Displays all disabled linters MegaLinter could have run. | | **SKIP_CLI_LINT_MODES** | \[\] | Comma-separated list of cli_lint_modes. To use if you want to skip linters with some CLI lint modes (ex: `file,project`). Available values: `file`,`cli_lint_mode`,`project`. | | **SKIP_LINTER_OUTPUT_SANITIZATION** | `false` | By default, MegaLinter sanitizes the output of every external command using Gitleaks public rules.
If you are on a private and secured repo, you can improve performances by setting this variable to `true`, but it will mean that if a linter output contains a secret, it will be visible in log files | | **TYPESCRIPT_DEFAULT_STYLE** | `standard` | Typescript default style to check/apply. `standard`,`prettier` | | **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. | | | **output_variables** | ENV variables to read from output after running the commands, and store in MegaLinter's ENV context so they can be reused in subsequent commands | `[]` | | **tag** | Tag defining at which command entry point the command will be run (available tags: `before_plugins`) | | | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| |
| [all](https://megalinter.io/beta/supported-linters/) | Default MegaLinter Flavor | 137 |   |
| 标签:Apache Flink, CI/CD, GitHub Action, 代码规范检查, 代码质量, 自动化测试, 错误基检测, 静态代码分析