{
  "markdown": "<!-- markdownlint-disable MD013 MD033 MD041 -->\n\n<!-- header-intro-start -->\n<!-- header-intro-end -->\n\n<!-- header-logo-start -->\n<div align=\"center\">\n  <a href=\"https://megalinter.io\" target=\"blank\" title=\"Visit MegaLinter Web Site\">\n    <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/megalinter-banner.png\" alt=\"MegaLinter\" min-height=\"200px\">\n  </a>\n</div>\n<!-- header-logo-end -->\n<!-- mega-linter-title-start -->\n\n# MegaLinter, by [![OX Security](https://www.ox.security/wp-content/uploads/2022/06/logo.svg?ref=megalinter_readme)](https://www.ox.security/?ref=megalinter)\n\n<!-- mega-linter-title-end -->\n<!-- mega-linter-badges-start -->\n![GitHub release](https://img.shields.io/github/v/release/oxsecurity/megalinter?sort=semver)\n[![Docker Pulls](https://img.shields.io/badge/docker%20pulls-27.2M-blue)](https://megalinter.io/flavors/)\n[![Downloads/week](https://img.shields.io/npm/dw/mega-linter-runner.svg)](https://npmjs.org/package/mega-linter-runner)\n[![Coding Agents](https://img.shields.io/badge/Coding%20Agents-compatible-blueviolet?logo=githubcopilot&logoColor=white)](https://megalinter.io/latest/coding-agents/)\n[![GitHub stars](https://img.shields.io/github/stars/oxsecurity/megalinter?cacheSeconds=3600)](https://github.com/oxsecurity/megalinter/stargazers/)\n[![MegaLinter](https://github.com/oxsecurity/megalinter/workflows/MegaLinter/badge.svg?branch=main)](https://github.com/oxsecurity/megalinter/actions?query=workflow%3AMegaLinter+branch%3Amain)\n[![codecov](https://codecov.io/gh/oxsecurity/megalinter/branch/main/graph/badge.svg)](https://codecov.io/gh/oxsecurity/megalinter)\n<!-- gh-dependents-info-used-by-start -->\n[![Generated by github-dependents-info](https://img.shields.io/static/v1?label=Used%20by&message=6203&color=informational&logo=slickpic)](https://github.com/oxsecurity/megalinter/blob/main/./docs/used-by-stats.md)<!-- gh-dependents-info-used-by-end -->\n[![Secured with Trivy](https://img.shields.io/badge/Trivy-secured-green?logo=docker)](https://github.com/aquasecurity/trivy)\n[![GitHub contributors](https://img.shields.io/github/contributors/oxsecurity/megalinter.svg)](https://github.com/oxsecurity/megalinter/graphs/contributors/)\n[![GitHub Sponsors](https://img.shields.io/github/sponsors/nvuillam)](https://github.com/sponsors/nvuillam)\n[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/oxsecurity/megalinter/blob/main/.github/CONTRIBUTING.md)\n[![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)](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)\n<!-- mega-linter-badges-end -->\n\n<!-- welcome-phrase-start -->\nMegaLinter 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).\n\nSupports [**66** languages](#languages), [**24** 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**.\n\nMegaLinter has **native integrations** with popular CI/CD tools and is compliant with most [**Coding Agents**](https://megalinter.io/latest/coding-agents/).\n\n<div align=\"center\">\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/GitHubCommentReporter.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/github.png?raw=true\" alt=\"GitHub\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/GitlabCommentReporter.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/gitlab.png?raw=true\" alt=\"GitLab\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/AzureCommentReporter.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/azure.png?raw=true\" alt=\"Azure\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/BitbucketCommentReporter.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/bitbucket.png?raw=true\" alt=\"Bitbucket\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/install-jenkins.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/jenkins.png?raw=true\" alt=\"Jenkins\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/install-drone.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/drone.png?raw=true\" alt=\"Drone\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/install-concourse.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/concourse.png?raw=true\" alt=\"Concourse\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/install-docker.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/docker.png?raw=true\" alt=\"Docker\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/reporters/SarifReporter.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/sarif.png?raw=true\" alt=\"SARIF\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/observability/grafana.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/grafana.png?raw=true\" alt=\"Grafana\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/observability/datadog.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/datadog.png?raw=true\" alt=\"Datadog\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/observability/newrelic.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/newrelic.png?raw=true\" alt=\"New Relic\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/observability/elastic.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/integrations/elastic.png?raw=true\" alt=\"Elastic\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n</div>\n\n<div align=\"center\">\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/claude.png?raw=true\" alt=\"Claude Code\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/cursor.png?raw=true\" alt=\"Cursor\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/github-copilot.png?raw=true\" alt=\"GitHub Copilot CLI\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/codex.png?raw=true\" alt=\"Codex\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/antigravity.png?raw=true\" alt=\"Antigravity\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/opencode.png?raw=true\" alt=\"OpenCode\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/gemini-cli.png?raw=true\" alt=\"Gemini CLI\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/windsurf.png?raw=true\" alt=\"Windsurf\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/cline.png?raw=true\" alt=\"Cline\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/roo-code.png?raw=true\" alt=\"Roo Code\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/kilo-code.png?raw=true\" alt=\"Kilo Code\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/amp.png?raw=true\" alt=\"Amp\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/goose.png?raw=true\" alt=\"Goose\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/openhands.png?raw=true\" alt=\"OpenHands\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n<a href=\"https://github.com/oxsecurity/megalinter/tree/main/docs/coding-agents.md\"><img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/qwen-code.png?raw=true\" alt=\"Qwen Code\" height=\"40\" style=\"height:40px;vertical-align:middle;margin:4px\"></a>\n</div>\n\n\n<!-- welcome-phrase-end -->\n\n![MegaLinter Presentation GIF](https://github.com/oxsecurity/megalinter/blob/main/docs/assets/images/MegaLinter-banner-Medium.gif?raw=true)\n\n- Use the new [LLM Advisor](https://megalinter.io/latest/llm-advisor/) that will tell you how to fix linters issues\n- Create your own [MegaLinter Custom Flavors](https://megalinter.io/latest/custom-flavors/) to improve performance\n\n<!-- online-doc-start -->\nBefore you go further, see the [**online documentation website, which offers much easier navigation than this README**](https://megalinter.io/)\n<!-- online-doc-end -->\n\n<!-- table-of-contents-start -->\n## Table of Contents\n\n- [Why MegaLinter](#why-megalinter)\n- [Quick Start](#quick-start)\n- [Coding Agents](#coding-agents)\n- [Supported Linters](#supported-linters)\n  - [Languages](#languages)\n  - [Formats](#formats)\n  - [Tooling formats](#tooling-formats)\n  - [Other](#other)\n- [Installation](#installation)\n  - [Coding agents (skills)](#coding-agents-skills)\n  - [Coding Agents (Plugins)](#coding-agents-plugins)\n  - [Assisted installation](#assisted-installation)\n  - [Which version to use ?](#which-version-to-use-)\n  - [GitHub Action](#github-action)\n  - [GitLab CI](#gitlab-ci)\n  - [Azure Pipelines](#azure-pipelines)\n    - [Single Repository](#single-repository)\n    - [Central Repository](#central-repository)\n    - [Pull Request Comments](#pull-request-comments)\n    - [Detailed Tutorial](#detailed-tutorial)\n  - [Bitbucket Pipelines](#bitbucket-pipelines)\n  - [Jenkins](#jenkins)\n  - [Concourse](#concourse)\n    - [Pipeline step](#pipeline-step)\n    - [Use it as a reusable task](#use-it-as-a-reusable-task)\n  - [Drone CI](#drone-ci)\n    - [(Optional) Adjusting trigger rules](#optional-adjusting-trigger-rules)\n  - [Docker container](#docker-container)\n  - [Run MegaLinter locally](#run-megalinter-locally)\n- [Configuration](#configuration)\n  - [.mega-linter.yml file](#mega-linteryml-file)\n  - [Common variables](#common-variables)\n  - [Activation and deactivation](#activation-and-deactivation)\n  - [Filter linted files](#filter-linted-files)\n  - [Apply fixes](#apply-fixes)\n    - [Apply fixes issues](#apply-fixes-issues)\n    - [Notes](#notes)\n  - [Linter specific variables](#linter-specific-variables)\n  - [Pre-commands](#pre-commands)\n  - [Post-commands](#post-commands)\n  - [Environment variables security](#environment-variables-security)\n    - [Secured env variables](#secured-env-variables)\n    - [Secured configuration examples](#secured-configuration-examples)\n    - [Default secured variables](#default-secured-variables)\n    - [Unhide variables for linters](#unhide-variables-for-linters)\n  - [CLI lint mode](#cli-lint-mode)\n- [Reporters](#reporters)\n- [Flavors](#flavors)\n- [Badge](#badge)\n  - [Markdown](#markdown)\n  - [reStructuredText](#restructuredtext)\n- [Plugins](#plugins)\n  - [External Plugins Catalog](#external-plugins-catalog)\n  - [Use external plugins](#use-external-plugins)\n    - [Example](#example)\n  - [Create your own plugin](#create-your-own-plugin)\n    - [Limitations](#limitations)\n- [They talk about MegaLinter](#they-talk-about-megalinter)\n  - [English articles](#english-articles)\n  - [French articles](#french-articles)\n  - [Videos](#videos)\n  - [Web Sites](#web-sites)\n  - [Linters](#linters)\n- [Frequently Asked Questions](#frequently-asked-questions)\n- [How to contribute](#how-to-contribute)\n- [Special thanks](#special-thanks)\n  - [Maintainers](#maintainers)\n  - [Contributors](#contributors)\n  - [Open-source teams](#open-source-teams)\n  - [Super-Linter team](#super-linter-team)\n- [License](#license)\n- [MegaLinter vs Super-Linter](#megalinter-vs-super-linter)\n  - [Security](#security)\n  - [Performance](#performance)\n  - [More languages and formats linted](#more-languages-and-formats-linted)\n  - [Automatically apply formatting and fixes](#automatically-apply-formatting-and-fixes)\n  - [Run locally](#run-locally)\n  - [Reports](#reports)\n    - [Capabilities](#capabilities)\n    - [Additional Reporters](#additional-reporters)\n  - [Enhanced configuration](#enhanced-configuration)\n  - [Enhanced documentation](#enhanced-documentation)\n  - [Plugin management](#plugin-management)\n  - [Simplify architecture and evolutionary maintenance](#simplify-architecture-and-evolutionary-maintenance)\n  - [Improve robustness \\& stability](#improve-robustness--stability)\n<!-- table-of-contents-end -->\n\n## Why MegaLinter\n\nProjects need to contain clean code in order to **avoid technical debt**, which makes **ongoing maintenance harder and more time-consuming**.\n\nBy 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.\n\nNot all developers use linters in their IDEs, which makes code reviews harder and longer to process.\n\nBy using **MegaLinter**, you'll enjoy the following benefits for your team:\n\n- At **each pull request**, it **automatically analyzes all updated code across all languages**.\n- By reading error logs, **developers learn best practices** for the languages they use.\n- The [**MegaLinter documentation**](https://megalinter.io/) provides a **list of IDE plugins for each linter**, so developers know which linter and plugins to install.\n- MegaLinter **works out of the box** after a [**quick setup**](#quick-start).\n- **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).\n- This tool is **100% open source** and **free for all uses** (personal, professional, public, and private repositories).\n- 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**.\n\nJoin a **continuously growing community**: MegaLinter Docker images are pulled **hundreds of thousands of times every month**.\n\n[![MegaLinter Docker pulls per month](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/docker-pulls-monthly.svg)](https://megalinter.io/latest/flavors-stats/)\n\n<!-- quick-start-section-start -->\n<!-- markdown-headers\n---\ntitle: Quick Start with MegaLinter\ndescription: Setup MegaLinter in 5 minutes thanks to its assisted installation tool\n---\n-->\n## Quick Start\n\n- **With a coding agent**: install the [MegaLinter agent skills](https://megalinter.io/latest/install-agent-skills/) with `npx skills add oxsecurity/megalinter/skills`, then ask your agent to _\"setup megalinter\"_.\n- **Or with the interactive wizard**: run `npx mega-linter-runner --install` to generate configuration files (you need [Node.js](https://nodejs.org/en/) installed).\n- Commit, push, and create a pull request.\n- Watch!\n\n![Runner Install](https://github.com/oxsecurity/megalinter/blob/main/docs/assets/images/mega-linter-runner-generator.gif?raw=true)\n\n**Notes**:\n\n<!-- # MAJOR-RELEASE-IMPACTED -->\n\n- 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).\n- 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@v10` in your GitHub Action YAML file, [like on this PR](https://github.com/nvuillam/npm-groovy-lint/pull/109)).\n- 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).\n- 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.\n<!-- quick-start-section-end -->\n\n<!-- coding-agents-section-start -->\n<!-- markdown-headers\n---\ntitle: Use MegaLinter with coding agents\ndescription: Setup, run and fix MegaLinter errors from Claude Code, Cursor, GitHub Copilot CLI, Codex, Gemini CLI, Antigravity, OpenCode and other coding agents, with token-efficient sub-agents orchestration\n---\n-->\n## Coding Agents\n\nMegaLinter is designed to work hand in hand with your coding agent:\n\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/claude.png?raw=true\" alt=\"Claude Code\" height=\"40\" style=\"height:40px\">](https://claude.com/product/claude-code)\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/cursor.png?raw=true\" alt=\"Cursor\" height=\"40\" style=\"height:40px\">](https://cursor.com)\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/github-copilot.png?raw=true\" alt=\"GitHub Copilot CLI\" height=\"40\" style=\"height:40px\">](https://github.com/features/copilot)\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/codex.png?raw=true\" alt=\"Codex\" height=\"40\" style=\"height:40px\">](https://openai.com/codex/)\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/antigravity.png?raw=true\" alt=\"Antigravity\" height=\"40\" style=\"height:40px\">](https://antigravity.google/)\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/opencode.png?raw=true\" alt=\"OpenCode\" height=\"40\" style=\"height:40px\">](https://opencode.ai)\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/gemini-cli.png?raw=true\" alt=\"Gemini CLI\" height=\"40\" style=\"height:40px\">](https://github.com/google-gemini/gemini-cli)\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/windsurf.png?raw=true\" alt=\"Windsurf\" height=\"40\" style=\"height:40px\">](https://windsurf.com)\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/cline.png?raw=true\" alt=\"Cline\" height=\"40\" style=\"height:40px\">](https://cline.bot)\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/roo-code.png?raw=true\" alt=\"Roo Code\" height=\"40\" style=\"height:40px\">](https://roocode.com)\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/kilo-code.png?raw=true\" alt=\"Kilo Code\" height=\"40\" style=\"height:40px\">](https://kilocode.ai)\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/amp.png?raw=true\" alt=\"Amp\" height=\"40\" style=\"height:40px\">](https://ampcode.com)\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/goose.png?raw=true\" alt=\"Goose\" height=\"40\" style=\"height:40px\">](https://block.github.io/goose/)\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/openhands.png?raw=true\" alt=\"OpenHands\" height=\"40\" style=\"height:40px\">](https://www.all-hands.dev)\n[<img src=\"https://github.com/oxsecurity/megalinter/blob/main/docs/assets/icons/agents/qwen-code.png?raw=true\" alt=\"Qwen Code\" height=\"40\" style=\"height:40px\">](https://github.com/QwenLM/qwen-code)\n\n### Get started\n\nInstall the [MegaLinter agent skills](https://github.com/oxsecurity/megalinter/tree/main/skills) at the root of your repository:\n\nWith **Claude Code** (the skills are copied directly into `.claude/skills/`):\n\n```bash\nnpx skills add oxsecurity/megalinter/skills -s '*' -a claude-code -y\n```\n\nWith **another coding agent**, replace `claude-code` with your agent's identifier (`cursor`, `github-copilot`, `codex`, `antigravity`, `opencode`... full list in the [skills CLI documentation](https://github.com/vercel-labs/skills#supported-agents)) — or let the CLI **detect your installed agents** and install the skills for all of them at once:\n\n```bash\nnpx skills add oxsecurity/megalinter/skills -s '*' -y --copy\n```\n\nThen just talk to your agent:\n\n- _\"Setup MegaLinter on this repo\"_\n- _\"Run MegaLinter and fix the errors\"_\n- _\"Why is the MegaLinter CI job failing? Fix it\"_\n\n### What the skills do\n\n| Skill                | Role                                                                                                                                                                |\n|:---------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **megalinter**       | Entry point: detects the repository state and orchestrates the other skills in a check → fix → re-check loop (3 iterations max)                                     |\n| **megalinter-setup** | Installs or upgrades MegaLinter using `npx mega-linter-runner --install` (non-interactive), then refines `.mega-linter.yml`                                         |\n| **megalinter-check** | Collects errors: watches a MegaLinter CI job (GitHub Actions, GitLab CI, Azure Pipelines, Bitbucket Pipelines) or runs MegaLinter locally with docker/podman        |\n| **megalinter-fix**   | Fixes errors guided by a per-linter fix guide (one for each of the 124 linters, loaded only when its linter has errors), asks you before disabling rules or pushing |\n\n### Sub-agents orchestration\n\nOn agents supporting sub-agents (Claude Code, OpenCode, GitHub Copilot custom agents...), `megalinter-setup` installs three sub-agents that keep large CI logs and linter outputs **out of your main agent's context**, and run on low-cost models when possible:\n\n```mermaid\nflowchart TD\n    U([\"👤 You: <i>run megalinter and fix the errors</i>\"]) --> O[\"🎯 megalinter<br/>(orchestrator skill)\"]\n    O -->|\"no config found\"| S[\"🛠️ megalinter-setup\"]\n    S -->|\"npx mega-linter-runner --install\"| CFG[/\".mega-linter.yml<br/>+ CI workflow\"/]\n    O --> C[\"🔍 megalinter-check\"]\n    C -->|\"watch mode\"| W[[\"👀 megalinter-watcher<br/>sub-agent, low-cost model\"]]\n    W --> CI[/\"CI job logs<br/>GitHub / GitLab / Azure / Bitbucket\"/]\n    C -->|\"local mode\"| RUN[[\"🐳 megalinter-runner<br/>sub-agent, low-cost model\"]]\n    RUN --> IMG[/\"MegaLinter Docker image<br/>docker or podman\"/]\n    W --> ERR[/\"📋 Compact error list<br/>grouped by linter\"/]\n    RUN --> ERR\n    ERR --> F[\"🔧 megalinter-fix\"]\n    F -->|\"one sub-agent per failing linter,<br/>in parallel\"| FX1[[\"🤖 megalinter-fixer<br/>+ python_ruff fix guide\"]]\n    F --> FX2[[\"🤖 megalinter-fixer<br/>+ markdown_markdownlint fix guide\"]]\n    FX1 --> RES[/\"✏️ Fixed files<br/>+ proposed rule disables\"/]\n    FX2 --> RES\n    RES -->|\"you confirm disables\"| RC[\"♻️ Targeted re-check<br/>parallel standalone linter images\"]\n    RC -->|\"errors remain (max 3 loops)\"| F\n    RC -->|\"clean\"| DONE([\"✅ Commit on a branch<br/>(never on main)\"])\n\n    classDef user fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:#1b5e20\n    classDef skill fill:#ede7f6,stroke:#5e35b1,stroke-width:2px,color:#311b92\n    classDef subagent fill:#e3f2fd,stroke:#1976d2,stroke-width:2px,color:#0d47a1\n    classDef artifact fill:#fff8e1,stroke:#f9a825,stroke-width:1px,color:#5d4037\n    classDef recheck fill:#e0f2f1,stroke:#00897b,stroke-width:2px,color:#004d40\n\n    class U,DONE user\n    class O,S,C,F skill\n    class W,RUN,FX1,FX2 subagent\n    class CFG,CI,IMG,ERR,RES artifact\n    class RC recheck\n```\n\nThe fix guides combine information generated from the [linter descriptors](https://github.com/oxsecurity/megalinter/tree/main/megalinter/descriptors) (auto-fix support, rules documentation URLs, MegaLinter tuning variables) with curated fix, inline-disable and ignore instructions grounded in each linter's official documentation.\n\n### Safety rules\n\n- Safe fixes are applied automatically; ambiguous ones are asked to you\n- Disabling a linter or a rule always requires your confirmation\n- Commits are never pushed to the default branch\n\nSee also the [installation page for coding agents](https://megalinter.io/latest/install-agent-skills/), or install everything at once as an [agent plugin](https://megalinter.io/latest/agent-plugins/).\n\n<!-- coding-agents-section-end -->\n\n<!-- supported-linters-section-start -->\n<!-- markdown-headers\n---\ntitle: List of the 100+ supported linters embedded in MegaLinter\ndescription: Full list of all linters for all languages and formats that are available in MegaLinter\n---\n-->\n## Supported Linters\n\nAll linters are integrated into the [MegaLinter Docker image](https://hub.docker.com/r/oxsecurity/megalinter), which is frequently updated with their latest versions.\n\n<!-- languages-section-start-->\n<!-- linters-table-start -->\n### Languages\n\n|                                                                               <!-- -->                                                                               | Language                                                                                                            | Linter                                                                                                                                                                                                                                                                             |                                                                                                                                                                                                Additional                                                                                                                                                                                                 |\n|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|---------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|\n|    <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/bash.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->    | [**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)<br/>[_BASH_EXEC_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_bash_exec.md)                                                                    |                                                                                                                                                                                                                                                                                                                                                                                                           |\n|    <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/bash.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->    | [**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)<br/>[_BASH_SHELLCHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shellcheck.md)                                                           |                                                                                                           [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) ![sarif](https://shields.io/badge/-SARIF-orange)                                                                                                           |\n|    <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/bash.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->    | [**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)<br/>[_BASH_SHFMT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shfmt.md)                                                                               |                                                                                                                   [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow)                                                                                                                    |\n|     <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/c.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->      | [**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)<br/>[_C_CPPCHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cppcheck.md)                                                                            |                                                                                                                                                                             ![sarif](https://shields.io/badge/-SARIF-orange)                                                                                                                                                                              |\n|     <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/c.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->      | [**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)<br/>[_C_CPPLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cpplint.md)                                                                                |                                                                                                                                       [![GitHub stars](https://img.shields.io/github/stars/cpplint/cpplint?cacheSeconds=3600)](https://github.com/cpplint/cpplint)                                                                                                                                        |\n|     <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/c.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->      | [**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)<br/>[_C_CLANG_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_clang_format.md)                                                            |                                                                                                           [![GitHub stars](https://img.shields.io/github/stars/llvm/llvm-project?cacheSeconds=3600)](https://github.com/llvm/llvm-project) ![autofix](https://shields.io/badge/-autofix-green)                                                                                                            |\n|  <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/clojure.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->   | [**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)<br/>[_CLOJURE_CLJ_KONDO_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_clj_kondo.md)                                                      |                                                                                                            [![GitHub stars](https://img.shields.io/github/stars/borkdude/clj-kondo?cacheSeconds=3600)](https://github.com/borkdude/clj-kondo) ![sarif](https://shields.io/badge/-SARIF-orange)                                                                                                            |\n|  <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/clojure.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->   | [**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)<br/>[_CLOJURE_CLJSTYLE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_cljstyle.md)                                                          |                                                                                                           [![GitHub stars](https://img.shields.io/github/stars/greglook/cljstyle?cacheSeconds=3600)](https://github.com/greglook/cljstyle) ![autofix](https://shields.io/badge/-autofix-green)                                                                                                            |\n|   <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/coffee.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->   | [**COFFEE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee.md)                         | <s>[**coffeelint**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md)<br/>[_COFFEE_COFFEELINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md)</s>                                              | <span title=\"Disabled: CoffeeScript tooling is discontinued, and coffeelint can not honor EXCLUDED_DIRECTORIES (it has no exclusion option and only reads .coffeelintignore from its working directory). The linter will be removed in a future version\">🚫</span> [![GitHub stars](https://img.shields.io/github/stars/clutchski/coffeelint?cacheSeconds=3600)](https://github.com/clutchski/coffeelint) |\n|    <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/cpp.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->     | [**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)<br/>[_CPP_CPPCHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cppcheck.md)                                                                      |                                                                                                                                                                             ![sarif](https://shields.io/badge/-SARIF-orange)                                                                                                                                                                              |\n|    <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/cpp.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->     | [**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)<br/>[_CPP_CPPLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cpplint.md)                                                                          |                                                                                                                                       [![GitHub stars](https://img.shields.io/github/stars/cpplint/cpplint?cacheSeconds=3600)](https://github.com/cpplint/cpplint)                                                                                                                                        |\n|    <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/cpp.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->     | [**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)<br/>[_CPP_CLANG_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_clang_format.md)                                                      |                                                                                                           [![GitHub stars](https://img.shields.io/github/stars/llvm/llvm-project?cacheSeconds=3600)](https://github.com/llvm/llvm-project) ![autofix](https://shields.io/badge/-autofix-green)                                                                                                            |\n|   <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/csharp.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->   | [**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)<br/>[_CSHARP_DOTNET_FORMAT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md)                                         |                                                                                                                 [![GitHub stars](https://img.shields.io/github/stars/dotnet/sdk?cacheSeconds=3600)](https://github.com/dotnet/sdk) ![formatter](https://shields.io/badge/-format-yellow)                                                                                                                  |\n|   <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/csharp.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->   | [**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)<br/>[_CSHARP_CSHARPIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_csharpier.md)                                                         |                                                                                                            [![GitHub stars](https://img.shields.io/github/stars/belav/csharpier?cacheSeconds=3600)](https://github.com/belav/csharpier) ![formatter](https://shields.io/badge/-format-yellow)                                                                                                             |\n|   <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/csharp.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->   | [**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)<br/>[_CSHARP_ROSLYNATOR_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_roslynator.md)                                                     |                                                                                                          [![GitHub stars](https://img.shields.io/github/stars/dotnet/Roslynator?cacheSeconds=3600)](https://github.com/dotnet/Roslynator) ![formatter](https://shields.io/badge/-format-yellow)                                                                                                           |\n|    <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/dart.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->    | [**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)<br/>[_DART_DARTANALYZER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md)                                                   |                                                                                                                                         [![GitHub stars](https://img.shields.io/github/stars/dart-lang/sdk?cacheSeconds=3600)](https://github.com/dart-lang/sdk)                                                                                                                                          |\n|     <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/go.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->     | [**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)<br/>[_GO_GOLANGCI_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md)                                                     |                                                                              [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange)                                                                              |\n|     <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/go.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->     | [**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)<br/>[_GO_REVIVE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_revive.md)                                                                                 |                                                                                                                [![GitHub stars](https://img.shields.io/github/stars/mgechev/revive?cacheSeconds=3600)](https://github.com/mgechev/revive) ![sarif](https://shields.io/badge/-SARIF-orange)                                                                                                                |\n|   <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/groovy.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->   | [**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)<br/>[_GROOVY_NPM_GROOVY_LINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md)                                 |                                                                            [![GitHub stars](https://img.shields.io/github/stars/nvuillam/npm-groovy-lint?cacheSeconds=3600)](https://github.com/nvuillam/npm-groovy-lint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange)                                                                            |\n|    <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/java.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->    | [**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)<br/>[_JAVA_CHECKSTYLE_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_checkstyle.md)                                                           |                                                                                                         [![GitHub stars](https://img.shields.io/github/stars/checkstyle/checkstyle?cacheSeconds=3600)](https://github.com/checkstyle/checkstyle) ![sarif](https://shields.io/badge/-SARIF-orange)                                                                                                         |\n|    <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/java.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->    | [**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)<br/>[_JAVA_PMD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_pmd.md)                                                                                       |                                                                                                                       [![GitHub stars](https://img.shields.io/github/stars/pmd/pmd?cacheSeconds=3600)](https://github.com/pmd/pmd) ![sarif](https://shields.io/badge/-SARIF-orange)                                                                                                                       |\n| <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/javascript.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon --> | [**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)<br/>[_JAVASCRIPT_ES_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_eslint.md)                                                             |                                                                                       [![GitHub stars](https://img.shields.io/github/stars/eslint/eslint?cacheSeconds=3600)](https://github.com/eslint/eslint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange)                                                                                       |\n| <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/javascript.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon --> | [**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)<br/>[_JAVASCRIPT_STANDARD_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_standard.md)                                                 |                                                                                                           [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green)                                                                                                            |\n| <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/javascript.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon --> | [**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)<br/>[_JAVASCRIPT_PRETTIER_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_prettier.md)                                                 |                                                                                                          [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow)                                                                                                           |\n| <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/javascript.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon --> | [**JAVASCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript.md)                 | [**biome**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_biome.md)<br/>[_JAVASCRIPT_BIOME_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_biome.md)                                                             |                                                                                       [![GitHub stars](https://img.shields.io/github/stars/biomejs/biome?cacheSeconds=3600)](https://github.com/biomejs/biome) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange)                                                                                       |\n|    <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/jsx.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->     | [**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)<br/>[_JSX_ESLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx_eslint.md)                                                                              |                                                                                 [![GitHub stars](https://img.shields.io/github/stars/Rel1cx/eslint-react?cacheSeconds=3600)](https://github.com/Rel1cx/eslint-react) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange)                                                                                 |\n|    <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/jsx.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->     | [**JSX**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx.md)                               | [**biome**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx_biome.md)<br/>[_JSX_BIOME_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx_biome.md)                                                                                  |                                                                                       [![GitHub stars](https://img.shields.io/github/stars/biomejs/biome?cacheSeconds=3600)](https://github.com/biomejs/biome) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange)                                                                                       |\n|   <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/kotlin.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->   | [**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)<br/>[_KOTLIN_KTLINT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_ktlint.md)                                                                     |                                                                                    [![GitHub stars](https://img.shields.io/github/stars/pinterest/ktlint?cacheSeconds=3600)](https://github.com/pinterest/ktlint) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange)                                                                                    |\n|   <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/kotlin.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->   | [**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)<br/>[_KOTLIN_DETEKT_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_detekt.md)                                                                     |                                                                                                                 [![GitHub stars](https://img.shields.io/github/stars/detekt/detekt?cacheSeconds=3600)](https://github.com/detekt/detekt) ![sarif](https://shields.io/badge/-SARIF-orange)                                                                                                                 |\n|    <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/lua.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->     | [**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)<br/>[_LUA_LUACHECK_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_luacheck.md)                                                                      |                                                                                                                                 [![GitHub stars](https://img.shields.io/github/stars/lunarmodules/luacheck?cacheSeconds=3600)](https://github.com/lunarmodules/luacheck)                                                                                                                                  |\n|    <img src=\"https://github.com/oxsecurity/megalinter/raw/main/docs/assets/icons/lua.ico\" alt=\"\" height=\"32px\" class=\"megalinter-icon\"></a> <!-- linter-icon -->     | [**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)<br/>[_LUA_STYLUA_](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_stylua.md)                                                                              |                                                                                                                                  [![GitHub stars](https://img.shields.io/github/stars/JohnnyMorganz/StyLua?cacheSeconds=3600)](https://github.com/JohnnyMorganz/StyLua)                                                        ",
  "bytes": 60000,
  "sha": "e97bd38a9f13dc980c9a9ff983fe23cb1d91d9fc5c0ca878aad29de4d106dd3a",
  "repo_slug": "oxsecurity/megalinter",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_oxsecurity_megalinter_ce3d7e72/readme"
}