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
You need to have NodeJS and Docker installed on your computer to run MegaLinter locally with MegaLinter Runner
npm install mega-linter-runner -g
npm install mega-linter-runner --save-dev
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'
You can run mega-linter-runner as a pre-commit hook
Sample .pre-commit-config.yaml
:
repos:
- repo: https://github.com/oxsecurity/megalinter
rev: v6.8.0 # Git tag specifying the hook, not mega-linter-runner, version
hooks:
- id: megalinter-incremental # Faster, less thorough
stages:
- commit
- id: megalinter-full # Slower, more thorough
stages:
- push
See .pre-commit-hooks.yaml
for more details.
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 is on another docker registry | |
-e --env |
Environment variables for MegaLinter, following format 'ENV_VAR_NAME=VALUE' Warning: 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
mega-linter-runner
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
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