MegaLinter Runner
![GitHub stars](https://img.shields.io/github/stars/oxsecurity/megalinter?maxAge=2592000)
![Tweet](https://img.shields.io/twitter/url/http/shields.io.svg?style=social)
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](https://github.com/oxsecurity/megalinter/blob/main/docs/assets/images/ConsoleReporter.jpg?raw=true%3E)
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:
- repo: https://github.com/oxsecurity/megalinter
rev: v6.8.0
hooks:
- id: megalinter-incremental
stages:
- commit
- id: megalinter-full
stages:
- push
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 values 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
Examples
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
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](https://github.com/oxsecurity/megalinter/blob/main/docs/assets/images/mega-linter-runner-generator.gif?raw=true)
Linters
Languages
Formats
Tooling formats
Other