mega-linter-runner (original) (raw)

MegaLinter

MegaLinter Runner

Version Downloads/week Downloads/total GitHub stars

Docker Pulls MegaLinter codecov Secured with Trivy GitHub Sponsors PRs Welcome Tweet

MegaLinter analyzes 37 languages, 15 formats, 16 tooling formats , copy-pastes and spell in your repository sources, generate reports in several formats, and can even apply formatting and auto-fixes with auto-generated commit or PR, to ensure all your projects are clean, whatever IDE/toolbox are used by their developers !

See MegaLinter Online Documentation Web Site

This package allows to run MegaLinter locally before running it in your CD/CI workflow, or simply to locally apply reformatting and fixes without having to install up to date linters for your files

Screenshot

Installation

Pre-requisites

You need to have NodeJS and Docker installed on your computer to run MegaLinter locally with MegaLinter Runner

Global installation

npm install mega-linter-runner -g

Local installation

npm install mega-linter-runner --save-dev

No installation

You can run mega-linter-runner without installation by using npx

Example:

npx mega-linter-runner -r beta -e "'ENABLE=MARKDOWN,YAML'" -e 'SHOW_ELAPSED_TIME=true'

Pre-commit hook

You can run mega-linter-runner as a pre-commit hook

Sample .pre-commit-config.yaml:

repos:

See .pre-commit-hooks.yaml for more details.

Usage

mega-linter-runner [OPTIONS] [FILES]

The options are only related to mega-linter-runner. For MegaLinter options, please use a .mega-linter.yml configuration file

Option Description Default
-p --path Directory containing the files to lint current directory
-f --flavor Set this parameter to use a MegaLinter flavor all
-d --image You can override the used docker image, including if it's on another docker registry
-e --env Environment variables for MegaLinter, following format 'ENV_VAR_NAME=VALUE' for a single value or "'ENV_VAR_NAME=VALUE1,VALUE2'" for a list of valuesWarning: Quotes are mandatory
--fix Automatically apply formatting and fixes in your files
-r --release Allows to override MegaLinter version used v5
-h --help Show mega-linter-runner help
-v --version Show mega-linter-runner version
-i --install Generate MegaLinter configuration files
--container-name Specify MegaLinter container name
--remove-container Remove MegaLinter Docker container when done

You can also use npx mega-linter-runner if you do not want to install the package

Examples

mega-linter-runner -p myFolder --fix

mega-linter-runner -r beta -e "'ENABLE=MARKDOWN,YAML'" -e 'SHOW_ELAPSED_TIME=true'

mega-linter-runner --flavor python --release beta --filesonly path/to/my/file1.py another/path/to/a/file.js and/another/file.py

Configuration

You can generate a ready-to-use .mega-linter.yml configuration file by running npx mega-linter-runner --install at the root of your repository

Runner Install

Linters

Languages

Language Linter Additional
BASH bash-execBASH_EXEC
BASH shellcheckBASH_SHELLCHECK GitHub stars sarif
BASH shfmtBASH_SHFMT GitHub stars formatter
C cppcheckC_CPPCHECK
C cpplintC_CPPLINT GitHub stars
C clang-formatC_CLANG_FORMAT GitHub stars autofix
CLOJURE clj-kondoCLOJURE_CLJ_KONDO GitHub stars
CLOJURE cljstyleCLOJURE_CLJSTYLE GitHub stars autofix
COFFEE coffeelintCOFFEE_COFFEELINT GitHub stars
C++ (CPP) cppcheckCPP_CPPCHECK
C++ (CPP) cpplintCPP_CPPLINT GitHub stars
C++ (CPP) clang-formatCPP_CLANG_FORMAT GitHub stars autofix
C# (CSHARP) dotnet-formatCSHARP_DOTNET_FORMAT GitHub stars formatter
C# (CSHARP) csharpierCSHARP_CSHARPIER GitHub stars formatter
C# (CSHARP) roslynatorCSHARP_ROSLYNATOR GitHub stars formatter
DART dartanalyzerDART_DARTANALYZER GitHub stars
GO golangci-lintGO_GOLANGCI_LINT GitHub stars autofix sarif
GO reviveGO_REVIVE GitHub stars sarif
GROOVY npm-groovy-lintGROOVY_NPM_GROOVY_LINT GitHub stars autofix sarif
JAVA checkstyleJAVA_CHECKSTYLE GitHub stars sarif
JAVA pmdJAVA_PMD GitHub stars sarif
JAVASCRIPT eslintJAVASCRIPT_ES GitHub stars autofix sarif
JAVASCRIPT standardJAVASCRIPT_STANDARD GitHub stars autofix
JAVASCRIPT prettierJAVASCRIPT_PRETTIER GitHub stars formatter
JSX eslintJSX_ESLINT GitHub stars autofix sarif
KOTLIN ktlintKOTLIN_KTLINT GitHub stars autofix sarif
KOTLIN detektKOTLIN_DETEKT GitHub stars sarif
LUA luacheckLUA_LUACHECK GitHub stars
LUA seleneLUA_SELENE GitHub stars
LUA styluaLUA_STYLUA GitHub stars
MAKEFILE checkmakeMAKEFILE_CHECKMAKE disabled GitHub stars
PERL perlcriticPERL_PERLCRITIC GitHub stars
PHP phpcsPHP_PHPCS GitHub stars sarif
PHP phpstanPHP_PHPSTAN GitHub stars sarif
PHP psalmPHP_PSALM GitHub stars sarif
PHP phplintPHP_PHPLINT GitHub stars sarif
PHP php-cs-fixerPHP_PHPCSFIXER GitHub stars
POWERSHELL powershellPOWERSHELL_POWERSHELL GitHub stars autofix
POWERSHELL powershell_formatterPOWERSHELL_POWERSHELL_FORMATTER GitHub stars formatter
PYTHON pylintPYTHON_PYLINT GitHub stars
PYTHON blackPYTHON_BLACK GitHub stars formatter
PYTHON flake8PYTHON_FLAKE8 GitHub stars
PYTHON isortPYTHON_ISORT GitHub stars formatter
PYTHON banditPYTHON_BANDIT GitHub stars sarif
PYTHON mypyPYTHON_MYPY GitHub stars
PYTHON pyrightPYTHON_PYRIGHT GitHub stars
PYTHON ruffPYTHON_RUFF GitHub stars autofix sarif
PYTHON ruff-formatPYTHON_RUFF_FORMAT GitHub stars formatter
R lintrR_LINTR GitHub stars
RAKU rakuRAKU_RAKU GitHub stars
RUBY rubocopRUBY_RUBOCOP GitHub stars autofix
RUST clippyRUST_CLIPPY GitHub stars
SALESFORCE sfdx-scanner-apexSALESFORCE_SFDX_SCANNER_APEX GitHub stars
SALESFORCE sfdx-scanner-auraSALESFORCE_SFDX_SCANNER_AURA GitHub stars
SALESFORCE sfdx-scanner-lwcSALESFORCE_SFDX_SCANNER_LWC GitHub stars
SALESFORCE lightning-flow-scannerSALESFORCE_LIGHTNING_FLOW_SCANNER GitHub stars
SCALA scalafixSCALA_SCALAFIX GitHub stars
SQL sqlfluffSQL_SQLFLUFF GitHub stars
SQL tsqllintSQL_TSQLLINT GitHub stars
SWIFT swiftlintSWIFT_SWIFTLINT GitHub stars autofix
TSX eslintTSX_ESLINT GitHub stars autofix sarif
TYPESCRIPT eslintTYPESCRIPT_ES GitHub stars autofix sarif
TYPESCRIPT ts-standardTYPESCRIPT_STANDARD GitHub stars autofix
TYPESCRIPT prettierTYPESCRIPT_PRETTIER GitHub stars formatter
Visual Basic .NET (VBDOTNET) dotnet-formatVBDOTNET_DOTNET_FORMAT GitHub stars formatter

Formats

Format Linter Additional
CSS stylelintCSS_STYLELINT GitHub stars autofix
ENV dotenv-linterENV_DOTENV_LINTER GitHub stars autofix
GRAPHQL graphql-schema-linterGRAPHQL_GRAPHQL_SCHEMA_LINTER GitHub stars
HTML djlintHTML_DJLINT GitHub stars
HTML htmlhintHTML_HTMLHINT GitHub stars
JSON jsonlintJSON_JSONLINT GitHub stars
JSON eslint-plugin-jsoncJSON_ESLINT_PLUGIN_JSONC disabled GitHub stars autofix sarif
JSON v8rJSON_V8R GitHub stars
JSON prettierJSON_PRETTIER GitHub stars formatter
JSON npm-package-json-lintJSON_NPM_PACKAGE_JSON_LINT GitHub stars
LATEX chktexLATEX_CHKTEX
MARKDOWN markdownlintMARKDOWN_MARKDOWNLINT GitHub stars formatter
MARKDOWN remark-lintMARKDOWN_REMARK_LINT disabled GitHub stars formatter
MARKDOWN markdown-link-checkMARKDOWN_MARKDOWN_LINK_CHECK downgraded version GitHub stars
MARKDOWN markdown-table-formatterMARKDOWN_MARKDOWN_TABLE_FORMATTER GitHub stars formatter
PROTOBUF protolintPROTOBUF_PROTOLINT GitHub stars autofix
RST rst-lintRST_RST_LINT GitHub stars
RST rstcheckRST_RSTCHECK GitHub stars
RST rstfmtRST_RSTFMT formatter
XML xmllintXML_XMLLINT autofix
YAML prettierYAML_PRETTIER GitHub stars formatter
YAML yamllintYAML_YAMLLINT GitHub stars
YAML v8rYAML_V8R GitHub stars

Tooling formats

Tooling format Linter Additional
ACTION actionlintACTION_ACTIONLINT GitHub stars
ANSIBLE ansible-lintANSIBLE_ANSIBLE_LINT GitHub stars sarif
API spectralAPI_SPECTRAL GitHub stars
ARM arm-ttkARM_ARM_TTK GitHub stars
BICEP bicep_linterBICEP_BICEP_LINTER GitHub stars
CLOUDFORMATION cfn-lintCLOUDFORMATION_CFN_LINT GitHub stars sarif
DOCKERFILE hadolintDOCKERFILE_HADOLINT GitHub stars sarif
EDITORCONFIG editorconfig-checkerEDITORCONFIG_EDITORCONFIG_CHECKER GitHub stars
GHERKIN gherkin-lintGHERKIN_GHERKIN_LINT GitHub stars
KUBERNETES kubeconformKUBERNETES_KUBECONFORM GitHub stars
KUBERNETES helmKUBERNETES_HELM GitHub stars
KUBERNETES kubescapeKUBERNETES_KUBESCAPE GitHub stars sarif
PUPPET puppet-lintPUPPET_PUPPET_LINT GitHub stars autofix
SNAKEMAKE snakemakeSNAKEMAKE_LINT disabled GitHub stars
SNAKEMAKE snakefmtSNAKEMAKE_SNAKEFMT GitHub stars formatter
TEKTON tekton-lintTEKTON_TEKTON_LINT GitHub stars
TERRAFORM tflintTERRAFORM_TFLINT GitHub stars sarif
TERRAFORM terrascanTERRAFORM_TERRASCAN downgraded version GitHub stars sarif
TERRAFORM terragruntTERRAFORM_TERRAGRUNT GitHub stars autofix
TERRAFORM terraform-fmtTERRAFORM_TERRAFORM_FMT GitHub stars formatter

Other

Code quality checker Linter Additional
COPYPASTE jscpdCOPYPASTE_JSCPD GitHub stars
REPOSITORY checkovREPOSITORY_CHECKOV GitHub stars sarif
REPOSITORY devskimREPOSITORY_DEVSKIM GitHub stars sarif
REPOSITORY dustilockREPOSITORY_DUSTILOCK GitHub stars sarif
REPOSITORY git_diffREPOSITORY_GIT_DIFF GitHub stars
REPOSITORY gitleaksREPOSITORY_GITLEAKS GitHub stars sarif
REPOSITORY grypeREPOSITORY_GRYPE downgraded version GitHub stars sarif
REPOSITORY kicsREPOSITORY_KICS GitHub stars sarif
REPOSITORY ls-lintREPOSITORY_LS_LINT GitHub stars
REPOSITORY secretlintREPOSITORY_SECRETLINT GitHub stars sarif
REPOSITORY semgrepREPOSITORY_SEMGREP GitHub stars sarif
REPOSITORY syftREPOSITORY_SYFT GitHub stars sarif
REPOSITORY trivyREPOSITORY_TRIVY GitHub stars sarif
REPOSITORY trivy-sbomREPOSITORY_TRIVY_SBOM GitHub stars sarif
REPOSITORY trufflehogREPOSITORY_TRUFFLEHOG GitHub stars
SPELL cspellSPELL_CSPELL GitHub stars
SPELL proselintSPELL_PROSELINT GitHub stars
SPELL valeSPELL_VALE GitHub stars
SPELL lycheeSPELL_LYCHEE GitHub stars