From 33ebb65f237ca4d35c08c7fd1ed4903de3b7cbc1 Mon Sep 17 00:00:00 2001 From: Nicolas Vuillamy Date: Sun, 10 Jul 2022 14:38:01 +0200 Subject: [PATCH] MegaLinter v6 (#1153) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [automation] Auto-update linters version, help and documentation * Disable Github Status reporter * Breaking change: GITHUB_STATUS_REPORTER disabled by default * Breaking change: set PRINT_ALL_FILES default to false * Deploy V6 image (#1035) * QuickFix CI job * New flavor Security (#1036) * Java PMD v0 * Java Pmd v0.01 * Working Java + pmd :) * changelog + doc * Genedate doc + manage offline mode * changelog * Bring back referring linters * Fix build * Automate update of changelog when new release (v0) * Do not create commit & tag with npm version * Move markdown formatting * .md * PMD install commands * More pmd descriptor infos + build * Fix megalinter errors * Fix PMD install commands + build * [MegaLinter] Apply linters fixes * Hardcode some licenses * [MegaLinter] Apply linters fixes * Add gitleaks * Build with gitleaks * Gitleaks fixes * changelog * New descriptor: repository TODO: deprecate git and credentials * New descriptor "repository" * Add Goodcheck Goodcheck updates * Fix PMD * Fix PMD * [MegaLinter] Apply linters fixes * Fix pmd installation * Typo * wget --quiet * Add trivy * Build v6-alpha flavors * Remove git & credentials descriptors + upgrade python base image * Upgrade python * New flavor Security v0 * Fix ansible-lint install * Deploy v6-alpha documentation * Fix test class quick build * Disable java pmd * Downgrade python version * SARIF v0 * Update descriptor JSON schema + retries for sgerrand url * Add SARIF output for checkov * Add SARIF output for eslint * [automation] Auto-update linters version, help and documentation (#1038) * Fix gitleaks * Build * Do not skip build if failed * Do not test SARIF when SARIF is not active on a linter * Update ansible install * Fix goodcheck tests * Fix markdown-table-formatter * Fix trivy command * Fix checkov test case + manage default sarif output file * use MegaLinter beta for now * Update CI for new default report folder + Manage {{REPORT_FOLDER}} in CLI variables * Exit code 1 for trivy * Fix replace_vars definition * Do not run test mega-linter-runner when docker build failed * Fix replace_vars * Downgrade v8r version * Fix arm test case * build * Fix again arm test case * Fix makedirs for report folder * Rename default report folder into megalinter-reports * Fix gitleaks * Try again gitleaks * Fix last errors * Fix internal lint errors Co-authored-by: nvuillam * v6-alpha for github action * Adapt CI for v6-alpha. (#1062) * Fix own MegaLinter errors (#1063) * Fix own MegaLinter errors * Do not use secretlint on report folder * Fix gitleaks own config * Use regexes in gitleaks toml config file * grmblmblm * try with paths * Regex to gather gitleaks errors * Make gitleaks non blocking * Update gitleaks descriptor * Debug gitleaks (#1068) * Debug gitleaks * Remove LinkedIn ID gitleaks check * Ignore .gitleaks.toml files * Update security flavor + toml gitleaks update to use regexes * Try again... * Fix gitleaks config (use regexes in paths) * Update default .gitleaks.toml files * Clean dev variables * Build * Retrofit latest v5 updates into v6 (#1070) * [automation] Auto-update linters version, help and documentation (#1038) * Implement new linter PHPLint (#1037) * add new phplint linter (see #1031) * use composer global install for overture/phplint * update changelog * fix feature #1043 (#1044) * Add @babel/eslint-parser as dependency for eslint (#1045) * [automation] Auto-update linters version, help and documentation (#1046) * [automation] Auto-update linters version, help and documentation + @babel-core * Add @babel-core dependency * Use node.js LTS and not nodejs-current * Downgrade v8r version * Fix arm test case * Fix again arm test case * [automation] Auto-update linters version, help and documentation * Build * [automation] Auto-update linters version, help and documentation (#1050) * [automation] Auto-update linters version, help and documentation (#1052) * [automation] Auto-update linters version, help and documentation * Update doc for gitlab MegaLinter config * Bandit default config file (#1051) * remove default parameters * add default bandit configfile built with bandit-config-generator command * update changelog * update bandit doc page Co-authored-by: Nicolas Vuillamy * Try again ktlint auto-upgrade (#976) * [automation] Auto-update linters version, help and documentation (#1055) * [automation] Auto-update linters version, help and documentation (#1056) * Docs & links (#1058) * Update stale config * Fix getting linter version of npm plugin. (#804) * [automation] Auto-update linters version, help and documentation (#1059) * Fix doc * [automation] Auto-update linters version, help and documentation (#1065) * [automation] Auto-update linters version, help and documentation (#1067) * build Co-authored-by: Laurent Laville * SARIF for gitleaks (#1069) * SARIF for gitleaks * Sarif python test class v0 * Lint fix + changelog * Generate security flavor * SARIF support for trivy (#1071) * [automation] Auto-update linters version, help and documentation (#1038) * Implement new linter PHPLint (#1037) * add new phplint linter (see #1031) * use composer global install for overture/phplint * update changelog * fix feature #1043 (#1044) * Add @babel/eslint-parser as dependency for eslint (#1045) * [automation] Auto-update linters version, help and documentation (#1046) * [automation] Auto-update linters version, help and documentation + @babel-core * Add @babel-core dependency * Use node.js LTS and not nodejs-current * Downgrade v8r version * Fix arm test case * Fix again arm test case * [automation] Auto-update linters version, help and documentation * Build * [automation] Auto-update linters version, help and documentation (#1050) * [automation] Auto-update linters version, help and documentation (#1052) * [automation] Auto-update linters version, help and documentation * Update doc for gitlab MegaLinter config * Bandit default config file (#1051) * remove default parameters * add default bandit configfile built with bandit-config-generator command * update changelog * update bandit doc page Co-authored-by: Nicolas Vuillamy * Try again ktlint auto-upgrade (#976) * [automation] Auto-update linters version, help and documentation (#1055) * [automation] Auto-update linters version, help and documentation (#1056) * Docs & links (#1058) * Update stale config * Fix getting linter version of npm plugin. (#804) * [automation] Auto-update linters version, help and documentation (#1059) * Fix doc * [automation] Auto-update linters version, help and documentation (#1065) * [automation] Auto-update linters version, help and documentation (#1067) * SARIF for gitleaks * Sarif python test class v0 * Lint fix + changelog * SARIF support for trivy * Accelerate and fix internal tests * Fix SARIF files * Fix trivy sarif args * [automation] Auto-update linters version, help and documentation (#1072) * Fix SarifReporter * Better handling of SARIF error management * Fix SARIF default file name use quick build * Fix sarif reporter exception management * Variabilize default release * Improve runtime perfs when FLAVOR_SUGGESTIONS: false (#1073) * Improve runtime perfs when FLAVOR_SUGGESTIONS: false * [MegaLinter] Apply linters fixes * Fix how to get MEGALINTER_FLAVOR * Fix ignore flavor suggestion test class Co-authored-by: nvuillam * Build Co-authored-by: Laurent Laville Co-authored-by: nvuillam * V6/popularity - Display github stars in all linters documentation (#1075) * Add popularity * Update descriptors to add linter_repo when missing * FLAVOR_SUGGESTIONS:false to improve perfs * Build * Enhance documentation (#1078) * Popularity column in all tables * More badges in linters list doc * cspell * Fix sarif test case (#1079) * Fix sarif test case * Fix hardcoded reporter folder name in test case * Remove dockerfilelint (#1080) * Remove dockerfilelint * changelog * Upgrade to AWS cfn-lint (#1085) * Upgrade to AWS cfn-lint * Build * Add SARIF management for cfn-lint * Add cfn-lint example SARIF output file * SARIF management for Hadolint (#1089) * SARIF management for Hadolint * Update .gitleaks.toml to ignore .mypy_cache folder * Catch SARIF error * Upgrade hadolint to 2.8.0-alpine * SARIF for checkstyle (#1093) * SARIF for ktlint (#1095) * SARIF for all eslint uses (#1094) * SARIF management for go revive (#1092) * SARIF management for go revive * fix descriptor quick build * SARIF Management for PHP PSALM (#1096) * Build doc * More SARIF examples * V6/docker standalone linters (#1099) * Build unique linters dockerfiles * Dockerfiles for unique linters + Improve perfs * CI to build standalone images * Fix CI * Matrix jobs: do not fail other jobs if one fails * Manage docker build --squash * Add test cases to "only" docker images * No codecov call when not running all tests * Create output sarif folder when SARIF is from stdout * Remove useless python packages for ML runtime * Remove pytest-cov pytest-timeout from runtime image * Optimize Until dotenv linter * gcc in all dockerfiles + go for actionlint * Add libffi-dev in all Docker images * Add make * add bash * add musl-dev * Fix linters install * gnugpg for php * Automate node & ruby-dev installation if packages are used in install * Fix dotnet install * More preset variables on single-linter docker images * typo * typo2 * Add ruby-bundler for gem packages * Remove PHP_BUILTIN as it has been replaced by PHP_PHPLINT * Fix descriptors and test class * Improve CI perfs for only-linters build * More fixes * Fix kotlin install * Fix raku install * Fix R * Fix scala * Fix TSX * Fix Vb .NET * Build * Linters page * rollback raku * Fix terraform_fmt & rollback raku * Try fix rakudo * Fix duplicate ARG and FROM in dockerfile * Fix python lint err * Disable lint_all_other_linters_files=true if in SINGLE_LINTER mode * lint fix * Reduce docker layers * Reduce again the list of docker build steps * Do not keep text logs if not wanted + linter delete SARIF files * Fix CI * Fix SARIF test case * Disable deprecated test case * Terrascan SARIF management (#1103) * Terrascan SARIF management * tflint SARIF management * Fix terrascan args * cspell * MegaLinter server (#1106) * PHP version switch (#1083) * fixe issue #1060 * fix hadolint error DL3059 * [automation] Auto-update linters version, help and documentation (#1088) * [automation] Auto-update linters version, help and documentation * Increase trivy timeout * [automation] Auto-update linters version, help and documentation (#1091) * Release MegaLinter v5.3.0 * [automation] Auto-update linters version, help and documentation (#1097) * Fix CHANGELOG * [automation] Auto-update linters version, help and documentation (#1098) * [automation] Auto-update linters version, help and documentation (#1100) * [automation] Auto-update linters version, help and documentation (#1101) * [automation] Auto-update linters version, help and documentation (#1104) * KEEP_ALIVE_MEGALINTER v0 * openssh * Build standalone linters only for linters managing SARIF * Entrypoint * Entrypoint: exit when test cases called * Add openrc * Try another way https://github.com/danielguerra69/alpine-sshd * Startup lines at the end * Test simple case with password * rhaaaa * Remove ssh stuff as we loose env variables * Server v0 * Server v0 * Add workspace argument * Expose on port 80 * Manage running processes * try debug flask * debug mode for server * v0 ? * Fix server for report file name * SARIF in http response * [automation] Auto-update linters version, help and documentation (#1107) * [automation] Auto-update linters version, help and documentation (#1109) * [automation] Auto-update linters version, help and documentation (#1113) * Bring back ssh * Set env variables for all users * [automation] Auto-update linters version, help and documentation (#1114) * [automation] Auto-update linters version, help and documentation (#1116) * [automation] Auto-update linters version, help and documentation (#1117) * new SSH way with tmux * Build * Allow PWD auth for testing * [automation] Auto-update linters version, help and documentation (#1118) * [automation] Auto-update linters version, help and documentation (#1121) * Release MegaLinter v5.4.0 * [automation] Auto-update linters version, help and documentation (#1122) * [automation] Auto-update linters version, help and documentation (#1123) * [automation] Auto-update linters version, help and documentation (#1124) * [automation] Auto-update linters version, help and documentation (#1129) * [clj-kondo] update docs and version to 2021.12.19 (#1126) Co-authored-by: nvuillam * fix "MegaLinter vs Super-Linter" link in README (#1130) Co-authored-by: Nicolas Vuillamy * Move ssh management to entrypoint * QuickFix * try again * Stop docker container if entrypoint fails * Sh in container * alias for megalinger when running in server mode (#1133) makes running megalinter in server mode easier * aliases * Build * tmux_exec * Build ! * [automation] Auto-update linters version, help and documentation (#1131) * gha * motd * build * -input and -output v0 * Use argparse * Use parse_known_args * config.set * [automation] Auto-update linters version, help and documentation (#1135) * DOCKER_DEFAULT_WORKSPACE_DIR & absolue path for --input argument * introduce shell script to convenience running from ssh (#1137) * Create megalinter_tmux * Update build.py * Build Co-authored-by: nvuillam * Use --input * Fix --input + CI * CI for Inbar (create branch named v6_inbar ) * [automation] Auto-update linters version, help and documentation (#1138) * [automation] Auto-update linters version, help and documentation (#1141) * [automation] Auto-update linters version, help and documentation (#1142) * Release MegaLinter v5.5.0 * V6 inbar (#1143) * capture std is optional capture std is optional * improve megalinter_tmux script add verbosity as an optional flag, improve some messages, add comments, fix script name in examples * Bash file as executable * Fix shellcheck issue https://github.com/koalaman/shellcheck/wiki/SC2124 * Python & Dockerfiles lint errors * cspell * Build * Ignore tmux_exec for bash controlling * pylint err * cspell Co-authored-by: Laurent Laville Co-authored-by: John Practicalli <250870+practicalli-john@users.noreply.github.com> Co-authored-by: Adam Ralph Co-authored-by: Inbar <5904674+InbarRose@users.noreply.github.com> * V6 semgrep (#1147) * Add semgrep * Manage cli_config_default_value * Manage case when SARIF output is only the last sdout line * Add python test files for semgrep * semgrep --error * use regex to extract json * Use find / rfind instead of regex * fix * fix crash * reverse does not have a return value * Fix sarif_default_output_file process * Check SARIF consistency in test classes * Fix position to extract JSON from stdout * position again * Remove SARIF file from previous runs * Stupid typo + remove aggregate SARIF if pre-existing ^^ * changelog * Fix lint errors + descriptor json schema * Build doc * Automatically select security rulesets for semgrep (#1148) * Automatically select security rulesets for semgrep * Test classes for semgrep security rulesets * Do not overwrite test class if already existing * semgrep check failure * Any v6- and v6_ branch generates standalone linters * lint fixes * document additional megalinter semgrep config vars * build * SARIF enhancements (and trivy failed attempts) (#1150) * More general info in sarif * Fix trivy install for SARIF * Build * Force sarif template path + upgrade trivy version * fix wget call * try chmod on sarif template * typo * trivy * Add devskim (#1152) * devskim v0 * devskim bad example * Fix number of errors count * fix & Build doc * changelog * cspell * Fix CI * cspell * Fix trivy ? * fix trivy ? (2) * Try fix gitleaks (#1157) * Try fix gitleaks * trivy * Workaround until next version of trivy * build * Revert "Try fix gitleaks" This reverts commit e7c1be65c9dadc585cdea4c1302d75146d3acf8e. * Remove default gitleaks use + --no-git * --no-git back * SARIF for npm-groovy-lint (#1158) * SARIF for npm-groovy-lint * Fix GroovyLinter custom class * Factorize * Manage dynamic --no-git presence for gitleaks (#1162) * Manage dynamic --no-git presence for gitleaks * lint fix * Retrofit v5 into v6 (#1189) * PHP version switch (#1083) * fixe issue #1060 * fix hadolint error DL3059 * [automation] Auto-update linters version, help and documentation (#1088) * [automation] Auto-update linters version, help and documentation * Increase trivy timeout * [automation] Auto-update linters version, help and documentation (#1091) * Release MegaLinter v5.3.0 * [automation] Auto-update linters version, help and documentation (#1097) * Fix CHANGELOG * [automation] Auto-update linters version, help and documentation (#1098) * [automation] Auto-update linters version, help and documentation (#1100) * [automation] Auto-update linters version, help and documentation (#1101) * [automation] Auto-update linters version, help and documentation (#1104) * [automation] Auto-update linters version, help and documentation (#1107) * [automation] Auto-update linters version, help and documentation (#1109) * [automation] Auto-update linters version, help and documentation (#1113) * [automation] Auto-update linters version, help and documentation (#1114) * [automation] Auto-update linters version, help and documentation (#1116) * [automation] Auto-update linters version, help and documentation (#1117) * [automation] Auto-update linters version, help and documentation (#1118) * [automation] Auto-update linters version, help and documentation (#1121) * Release MegaLinter v5.4.0 * [automation] Auto-update linters version, help and documentation (#1122) * [automation] Auto-update linters version, help and documentation (#1123) * [automation] Auto-update linters version, help and documentation (#1124) * [automation] Auto-update linters version, help and documentation (#1129) * [clj-kondo] update docs and version to 2021.12.19 (#1126) Co-authored-by: nvuillam * fix "MegaLinter vs Super-Linter" link in README (#1130) Co-authored-by: Nicolas Vuillamy * [automation] Auto-update linters version, help and documentation (#1131) * [automation] Auto-update linters version, help and documentation (#1135) * [automation] Auto-update linters version, help and documentation (#1138) * [automation] Auto-update linters version, help and documentation (#1141) * [automation] Auto-update linters version, help and documentation (#1142) * Release MegaLinter v5.5.0 * Increase node.js --max-old-space-size to 8192 (#1149) * Increase node.js --max-old-space-size to 8192 * Build * [automation] Auto-update linters version, help and documentation (#1144) * trivy * [automation] Auto-update linters version, help and documentation (#1151) * [automation] Auto-update linters version, help and documentation * cspell * [automation] Auto-update linters version, help and documentation (#1155) * [automation] Auto-update linters version, help and documentation (#1156) * [automation] Auto-update linters version, help and documentation * trivy * [automation] Auto-update linters version, help and documentation (#1159) * [automation] Auto-update linters version, help and documentation (#1161) * Upgrade clj-kondo (#1165) * [automation] Auto-update linters version, help and documentation (#1164) * [automation] Auto-update linters version, help and documentation (#1167) * [automation] Auto-update linters version, help and documentation (#1170) * Retrieve licenses for documentation + fix config file + env issue (#1168) * [automation] Auto-update linters version, help and documentation * Disable Github Status reporter * Breaking change: GITHUB_STATUS_REPORTER disabled by default * Breaking change: set PRINT_ALL_FILES default to false * Deploy V6 image (#1035) * QuickFix CI job * New flavor Security (#1036) * Java PMD v0 * Java Pmd v0.01 * Working Java + pmd :) * changelog + doc * Genedate doc + manage offline mode * changelog * Bring back referring linters * Fix build * Automate update of changelog when new release (v0) * Do not create commit & tag with npm version * Move markdown formatting * .md * PMD install commands * More pmd descriptor infos + build * Fix megalinter errors * Fix PMD install commands + build * [MegaLinter] Apply linters fixes * Hardcode some licenses * [MegaLinter] Apply linters fixes * Add gitleaks * Build with gitleaks * Gitleaks fixes * changelog * New descriptor: repository TODO: deprecate git and credentials * New descriptor "repository" * Add Goodcheck Goodcheck updates * Fix PMD * Fix PMD * [MegaLinter] Apply linters fixes * Fix pmd installation * Typo * wget --quiet * Add trivy * Build v6-alpha flavors * Remove git & credentials descriptors + upgrade python base image * Upgrade python * New flavor Security v0 * Fix ansible-lint install * Deploy v6-alpha documentation * Fix test class quick build * Disable java pmd * Downgrade python version * SARIF v0 * Update descriptor JSON schema + retries for sgerrand url * Add SARIF output for checkov * Add SARIF output for eslint * [automation] Auto-update linters version, help and documentation (#1038) * Fix gitleaks * Build * Do not skip build if failed * Do not test SARIF when SARIF is not active on a linter * Update ansible install * Fix goodcheck tests * Fix markdown-table-formatter * Fix trivy command * Fix checkov test case + manage default sarif output file * use MegaLinter beta for now * Update CI for new default report folder + Manage {{REPORT_FOLDER}} in CLI variables * Exit code 1 for trivy * Fix replace_vars definition * Do not run test mega-linter-runner when docker build failed * Fix replace_vars * Downgrade v8r version * Fix arm test case * build * Fix again arm test case * Fix makedirs for report folder * Rename default report folder into megalinter-reports * Fix gitleaks * Try again gitleaks * Fix last errors * Fix internal lint errors Co-authored-by: nvuillam * v6-alpha for github action * Adapt CI for v6-alpha. (#1062) * Fix own MegaLinter errors (#1063) * Fix own MegaLinter errors * Do not use secretlint on report folder * Fix gitleaks own config * Use regexes in gitleaks toml config file * grmblmblm * try with paths * Regex to gather gitleaks errors * Make gitleaks non blocking * Update gitleaks descriptor * Debug gitleaks (#1068) * Debug gitleaks * Remove LinkedIn ID gitleaks check * Ignore .gitleaks.toml files * Update security flavor + toml gitleaks update to use regexes * Try again... * Fix gitleaks config (use regexes in paths) * Update default .gitleaks.toml files * Clean dev variables * Build * Retrofit latest v5 updates into v6 (#1070) * [automation] Auto-update linters version, help and documentation (#1038) * Implement new linter PHPLint (#1037) * add new phplint linter (see #1031) * use composer global install for overture/phplint * update changelog * fix feature #1043 (#1044) * Add @babel/eslint-parser as dependency for eslint (#1045) * [automation] Auto-update linters version, help and documentation (#1046) * [automation] Auto-update linters version, help and documentation + @babel-core * Add @babel-core dependency * Use node.js LTS and not nodejs-current * Downgrade v8r version * Fix arm test case * Fix again arm test case * [automation] Auto-update linters version, help and documentation * Build * [automation] Auto-update linters version, help and documentation (#1050) * [automation] Auto-update linters version, help and documentation (#1052) * [automation] Auto-update linters version, help and documentation * Update doc for gitlab MegaLinter config * Bandit default config file (#1051) * remove default parameters * add default bandit configfile built with bandit-config-generator command * update changelog * update bandit doc page Co-authored-by: Nicolas Vuillamy * Try again ktlint auto-upgrade (#976) * [automation] Auto-update linters version, help and documentation (#1055) * [automation] Auto-update linters version, help and documentation (#1056) * Docs & links (#1058) * Update stale config * Fix getting linter version of npm plugin. (#804) * [automation] Auto-update linters version, help and documentation (#1059) * Fix doc * [automation] Auto-update linters version, help and documentation (#1065) * [automation] Auto-update linters version, help and documentation (#1067) * build Co-authored-by: Laurent Laville * SARIF for gitleaks (#1069) * SARIF for gitleaks * Sarif python test class v0 * Lint fix + changelog * Generate security flavor * SARIF support for trivy (#1071) * [automation] Auto-update linters version, help and documentation (#1038) * Implement new linter PHPLint (#1037) * add new phplint linter (see #1031) * use composer global install for overture/phplint * update changelog * fix feature #1043 (#1044) * Add @babel/eslint-parser as dependency for eslint (#1045) * [automation] Auto-update linters version, help and documentation (#1046) * [automation] Auto-update linters version, help and documentation + @babel-core * Add @babel-core dependency * Use node.js LTS and not nodejs-current * Downgrade v8r version * Fix arm test case * Fix again arm test case * [automation] Auto-update linters version, help and documentation * Build * [automation] Auto-update linters version, help and documentation (#1050) * [automation] Auto-update linters version, help and documentation (#1052) * [automation] Auto-update linters version, help and documentation * Update doc for gitlab MegaLinter config * Bandit default config file (#1051) * remove default parameters * add default bandit configfile built with bandit-config-generator command * update changelog * update bandit doc page Co-authored-by: Nicolas Vuillamy * Try again ktlint auto-upgrade (#976) * [automation] Auto-update linters version, help and documentation (#1055) * [automation] Auto-update linters version, help and documentation (#1056) * Docs & links (#1058) * Update stale config * Fix getting linter version of npm plugin. (#804) * [automation] Auto-update linters version, help and documentation (#1059) * Fix doc * [automation] Auto-update linters version, help and documentation (#1065) * [automation] Auto-update linters version, help and documentation (#1067) * SARIF for gitleaks * Sarif python test class v0 * Lint fix + changelog * SARIF support for trivy * Accelerate and fix internal tests * Fix SARIF files * Fix trivy sarif args * [automation] Auto-update linters version, help and documentation (#1072) * Fix SarifReporter * Better handling of SARIF error management * Fix SARIF default file name use quick build * Fix sarif reporter exception management * Variabilize default release * Improve runtime perfs when FLAVOR_SUGGESTIONS: false (#1073) * Improve runtime perfs when FLAVOR_SUGGESTIONS: false * [MegaLinter] Apply linters fixes * Fix how to get MEGALINTER_FLAVOR * Fix ignore flavor suggestion test class Co-authored-by: nvuillam * Build Co-authored-by: Laurent Laville Co-authored-by: nvuillam * V6/popularity - Display github stars in all linters documentation (#1075) * Add popularity * Update descriptors to add linter_repo when missing * FLAVOR_SUGGESTIONS:false to improve perfs * Build * Enhance documentation (#1078) * Popularity column in all tables * More badges in linters list doc * cspell * Fix sarif test case (#1079) * Fix sarif test case * Fix hardcoded reporter folder name in test case * Remove dockerfilelint (#1080) * Remove dockerfilelint * changelog * Upgrade to AWS cfn-lint (#1085) * Upgrade to AWS cfn-lint * Build * Add SARIF management for cfn-lint * Add cfn-lint example SARIF output file * SARIF management for Hadolint (#1089) * SARIF management for Hadolint * Update .gitleaks.toml to ignore .mypy_cache folder * Catch SARIF error * Upgrade hadolint to 2.8.0-alpine * SARIF for checkstyle (#1093) * SARIF for ktlint (#1095) * SARIF for all eslint uses (#1094) * SARIF management for go revive (#1092) * SARIF management for go revive * fix descriptor quick build * SARIF Management for PHP PSALM (#1096) * Build doc * More SARIF examples * V6/docker standalone linters (#1099) * Build unique linters dockerfiles * Dockerfiles for unique linters + Improve perfs * CI to build standalone images * Fix CI * Matrix jobs: do not fail other jobs if one fails * Manage docker build --squash * Add test cases to "only" docker images * No codecov call when not running all tests * Create output sarif folder when SARIF is from stdout * Remove useless python packages for ML runtime * Remove pytest-cov pytest-timeout from runtime image * Optimize Until dotenv linter * gcc in all dockerfiles + go for actionlint * Add libffi-dev in all Docker images * Add make * add bash * add musl-dev * Fix linters install * gnugpg for php * Automate node & ruby-dev installation if packages are used in install * Fix dotnet install * More preset variables on single-linter docker images * typo * typo2 * Add ruby-bundler for gem packages * Remove PHP_BUILTIN as it has been replaced by PHP_PHPLINT * Fix descriptors and test class * Improve CI perfs for only-linters build * More fixes * Fix kotlin install * Fix raku install * Fix R * Fix scala * Fix TSX * Fix Vb .NET * Build * Linters page * rollback raku * Fix terraform_fmt & rollback raku * Try fix rakudo * Fix duplicate ARG and FROM in dockerfile * Fix python lint err * Disable lint_all_other_linters_files=true if in SINGLE_LINTER mode * lint fix * Reduce docker layers * Reduce again the list of docker build steps * Do not keep text logs if not wanted + linter delete SARIF files * Fix CI * Fix SARIF test case * Disable deprecated test case * Terrascan SARIF management (#1103) * Terrascan SARIF management * tflint SARIF management * Fix terrascan args * cspell * MegaLinter server (#1106) * PHP version switch (#1083) * fixe issue #1060 * fix hadolint error DL3059 * [automation] Auto-update linters version, help and documentation (#1088) * [automation] Auto-update linters version, help and documentation * Increase trivy timeout * [automation] Auto-update linters version, help and documentation (#1091) * Release MegaLinter v5.3.0 * [automation] Auto-update linters version, help and documentation (#1097) * Fix CHANGELOG * [automation] Auto-update linters version, help and documentation (#1098) * [automation] Auto-update linters version, help and documentation (#1100) * [automation] Auto-update linters version, help and documentation (#1101) * [automation] Auto-update linters version, help and documentation (#1104) * KEEP_ALIVE_MEGALINTER v0 * openssh * Build standalone linters only for linters managing SARIF * Entrypoint * Entrypoint: exit when test cases called * Add openrc * Try another way https://github.com/danielguerra69/alpine-sshd * Startup lines at the end * Test simple case with password * rhaaaa * Remove ssh stuff as we loose env variables * Server v0 * Server v0 * Add workspace argument * Expose on port 80 * Manage running processes * try debug flask * debug mode for server * v0 ? * Fix server for report file name * SARIF in http response * [automation] Auto-update linters version, help and documentation (#1107) * [automation] Auto-update linters version, help and documentation (#1109) * [automation] Auto-update linters version, help and documentation (#1113) * Bring back ssh * Set env variables for all users * [automation] Auto-update linters version, help and documentation (#1114) * [automation] Auto-update linters version, help and documentation (#1116) * [automation] Auto-update linters version, help and documentation (#1117) * new SSH way with tmux * Build * Allow PWD auth for testing * [automation] Auto-update linters version, help and documentation (#1118) * [automation] Auto-update linters version, help and documentation (#1121) * Release MegaLinter v5.4.0 * [automation] Auto-update linters version, help and documentation (#1122) * [automation] Auto-update linters version, help and documentation (#1123) * [automation] Auto-update linters version, help and documentation (#1124) * [automation] Auto-update linters version, help and documentation (#1129) * [clj-kondo] update docs and version to 2021.12.19 (#1126) Co-authored-by: nvuillam * fix "MegaLinter vs Super-Linter" link in README (#1130) Co-authored-by: Nicolas Vuillamy * Move ssh management to entrypoint * QuickFix * try again * Stop docker container if entrypoint fails * Sh in container * alias for megalinger when running in server mode (#1133) makes running megalinter in server mode easier * aliases * Build * tmux_exec * Build ! * [automation] Auto-update linters version, help and documentation (#1131) * gha * motd * build * -input and -output v0 * Use argparse * Use parse_known_args * config.set * [automation] Auto-update linters version, help and documentation (#1135) * DOCKER_DEFAULT_WORKSPACE_DIR & absolue path for --input argument * introduce shell script to convenience running from ssh (#1137) * Create megalinter_tmux * Update build.py * Build Co-authored-by: nvuillam * Use --input * Fix --input + CI * CI for Inbar (create branch named v6_inbar ) * [automation] Auto-update linters version, help and documentation (#1138) * [automation] Auto-update linters version, help and documentation (#1141) * [automation] Auto-update linters version, help and documentation (#1142) * Release MegaLinter v5.5.0 * V6 inbar (#1143) * capture std is optional capture std is optional * improve megalinter_tmux script add verbosity as an optional flag, improve some messages, add comments, fix script name in examples * Bash file as executable * Fix shellcheck issue https://github.com/koalaman/shellcheck/wiki/SC2124 * Python & Dockerfiles lint errors * cspell * Build * Ignore tmux_exec for bash controlling * pylint err * cspell Co-authored-by: Laurent Laville Co-authored-by: John Practicalli <250870+practicalli-john@users.noreply.github.com> Co-authored-by: Adam Ralph Co-authored-by: Inbar <5904674+InbarRose@users.noreply.github.com> * V6 semgrep (#1147) * Add semgrep * Manage cli_config_default_value * Manage case when SARIF output is only the last sdout line * Add python test files for semgrep * semgrep --error * use regex to extract json * Use find / rfind instead of regex * fix * fix crash * reverse does not have a return value * Fix sarif_default_output_file process * Check SARIF consistency in test classes * Fix position to extract JSON from stdout * position again * Remove SARIF file from previous runs * Stupid typo + remove aggregate SARIF if pre-existing ^^ * changelog * Fix lint errors + descriptor json schema * Build doc * Automatically select security rulesets for semgrep (#1148) * Automatically select security rulesets for semgrep * Test classes for semgrep security rulesets * Do not overwrite test class if already existing * semgrep check failure * Any v6- and v6_ branch generates standalone linters * lint fixes * document additional megalinter semgrep config vars * build * SARIF enhancements (and trivy failed attempts) (#1150) * More general info in sarif * Fix trivy install for SARIF * Build * Force sarif template path + upgrade trivy version * fix wget call * try chmod on sarif template * typo * trivy * Add devskim (#1152) * devskim v0 * devskim bad example * Fix number of errors count * fix & Build doc * changelog * cspell * Fix CI * cspell * Fix trivy ? * fix trivy ? (2) * Try fix gitleaks (#1157) * Try fix gitleaks * trivy * Workaround until next version of trivy * build * Revert "Try fix gitleaks" This reverts commit e7c1be65c9dadc585cdea4c1302d75146d3acf8e. * Remove default gitleaks use + --no-git * --no-git back * SARIF for npm-groovy-lint (#1158) * SARIF for npm-groovy-lint * Fix GroovyLinter custom class * Factorize * Manage dynamic --no-git presence for gitleaks (#1162) * Manage dynamic --no-git presence for gitleaks * lint fix * Test upload SARIF to github * Retrieve licenses * Fix mixed config file + env variables config * Link to licenses * Update links to licenses * Fixes * fix lint err * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam Co-authored-by: Laurent Laville Co-authored-by: John Practicalli <250870+practicalli-john@users.noreply.github.com> Co-authored-by: Adam Ralph Co-authored-by: Inbar <5904674+InbarRose@users.noreply.github.com> * [automation] Auto-update linters version, help and documentation (#1171) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1174) * Fix call to npm-groovy-lint (#1177) * Fix npm-groovy-lint call https://github.com/megalinter/megalinter/issues/1176 * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * lint fix * lint fix (2) * Make python linters play nice with each other (#1182) * Make Flake8 play nice with Black * Change black comment example * Make pylint play nice with Black * Make flake8 pass Co-authored-by: Sam Chorlton <> * Upgrade clj-kondo (#1181) * Bump cljkondo/clj-kondo from 2022.01.13-alpine to 2022.01.15-alpine Bumps cljkondo/clj-kondo from 2022.01.13-alpine to 2022.01.15-alpine. --- updated-dependencies: - dependency-name: cljkondo/clj-kondo dependency-type: direct:production ... Signed-off-by: dependabot[bot] * [automation] Auto-update linters version, help and documentation * upgrade clj-kondo Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix wrong status in reports when DISABLE_ERRORS is used (#1184) * Bump peter-evans/create-pull-request from 3.11.0 to 3.12.0 Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3.11.0 to 3.12.0. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v3.11.0...v3.12.0) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump actions/setup-node from 2.4.1 to 2.5.1 Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.4.1 to 2.5.1. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v2.4.1...v2.5.1) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump shelljs from 0.8.4 to 0.8.5 in /mega-linter-runner Bumps [shelljs](https://github.com/shelljs/shelljs) from 0.8.4 to 0.8.5. - [Release notes](https://github.com/shelljs/shelljs/releases) - [Changelog](https://github.com/shelljs/shelljs/blob/master/CHANGELOG.md) - [Commits](https://github.com/shelljs/shelljs/compare/v0.8.4...v0.8.5) --- updated-dependencies: - dependency-name: shelljs dependency-type: indirect ... Signed-off-by: dependabot[bot] * Fix wrong status in reports when DISABLE_ERRORS is used * [automation] Auto-update linters version, help and documentation * Fix wrong status in reports when DISABLE_ERRORS is used * Test cases fixes * fix test class * [MegaLinter] Apply linters fixes quick build * Fix test class quick build * Fix test class quick build * Update checkov & kics tests quick build Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: nvuillam * CHANGELOG * Release MegaLinter v5.6.0 * Build * fix lint * Fix dockerfile + build * fix changelog Co-authored-by: Laurent Laville Co-authored-by: John Practicalli <250870+practicalli-john@users.noreply.github.com> Co-authored-by: Adam Ralph Co-authored-by: nvuillam Co-authored-by: Inbar <5904674+InbarRose@users.noreply.github.com> Co-authored-by: Sam Chorlton <10245822+schorlton@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Call terrascan in project mode, not file by file (#1191) * Call terrascan in project mode, not file by file * verbose results * Several files for test case folders * add path in args * hack terrascan success test * Add syft to MegaLinter + sarif archi updates (#1221) * Syft V0 * Fix SyftLinter * syft call * cspell + debug * change syft call * More debug * Do not test failure * changelog & typos * Fix json parsing * Fix output SARIF format * improve ssh server experience (#1259) * improve ssh server experience remove tmux and replace with env variable export/import +build Dockerfile * Format MD tables + upgrade build * typo Co-authored-by: nvuillam * Manage unique docker image name (#1262) * Manage unique docker image name * Fix condition * typo * fix * Invert build order * ALWAYS_BUILD argument * fix * fix * Apply unique image name to v6_alpha * Make unique tag name for all images (#1264) * Make unique tag name for all images * lint fix * Apply to v6_alpha images * Make unique tag name more visible (#1267) * Make unique tag name more visible * fix action * New linter: Dustilock , detecting dependency injection (#1270) * Dustilock v0 * Fixes * Fix CI * Manually build SARIF from output * cspell * Test case with python * Factorize sarif schema & version * Fix * changelog * ByPass failure test case * Build with doc * Update mkdocs config * Retrofit v5 updates to v6-dev (#1306) * Merge branch 'main' into v6_upgrade * changelog conflicts merge * Build * Get upgraded versions file * Build * Add "python-gitlab" in setup.py * Build * Use openjdk11 * Fix typo * gitleaks test case * Fix tflint standalone linter (#1334) * Fix tflint standalone linter * lint fixes * ox installer (#1348) * Add Ox ascii art (#1361) * Add Ox ascii art * cspell * SARIF for secretlint * Retrofit downgrade of tflint * trivy * test secretlint * Fix gitleaks class (#1376) * Improve gitleaks (#1383) * Retrofit 5.11.2 + Git update (#1433) * PHP version switch (#1083) * fixe issue #1060 * fix hadolint error DL3059 * [automation] Auto-update linters version, help and documentation (#1088) * [automation] Auto-update linters version, help and documentation * Increase trivy timeout * [automation] Auto-update linters version, help and documentation (#1091) * Release MegaLinter v5.3.0 * [automation] Auto-update linters version, help and documentation (#1097) * Fix CHANGELOG * [automation] Auto-update linters version, help and documentation (#1098) * [automation] Auto-update linters version, help and documentation (#1100) * [automation] Auto-update linters version, help and documentation (#1101) * [automation] Auto-update linters version, help and documentation (#1104) * [automation] Auto-update linters version, help and documentation (#1107) * [automation] Auto-update linters version, help and documentation (#1109) * [automation] Auto-update linters version, help and documentation (#1113) * [automation] Auto-update linters version, help and documentation (#1114) * [automation] Auto-update linters version, help and documentation (#1116) * [automation] Auto-update linters version, help and documentation (#1117) * [automation] Auto-update linters version, help and documentation (#1118) * [automation] Auto-update linters version, help and documentation (#1121) * Release MegaLinter v5.4.0 * [automation] Auto-update linters version, help and documentation (#1122) * [automation] Auto-update linters version, help and documentation (#1123) * [automation] Auto-update linters version, help and documentation (#1124) * [automation] Auto-update linters version, help and documentation (#1129) * [clj-kondo] update docs and version to 2021.12.19 (#1126) Co-authored-by: nvuillam * fix "MegaLinter vs Super-Linter" link in README (#1130) Co-authored-by: Nicolas Vuillamy * [automation] Auto-update linters version, help and documentation (#1131) * [automation] Auto-update linters version, help and documentation (#1135) * [automation] Auto-update linters version, help and documentation (#1138) * [automation] Auto-update linters version, help and documentation (#1141) * [automation] Auto-update linters version, help and documentation (#1142) * Release MegaLinter v5.5.0 * Increase node.js --max-old-space-size to 8192 (#1149) * Increase node.js --max-old-space-size to 8192 * Build * [automation] Auto-update linters version, help and documentation (#1144) * trivy * [automation] Auto-update linters version, help and documentation (#1151) * [automation] Auto-update linters version, help and documentation * cspell * [automation] Auto-update linters version, help and documentation (#1155) * [automation] Auto-update linters version, help and documentation (#1156) * [automation] Auto-update linters version, help and documentation * trivy * [automation] Auto-update linters version, help and documentation (#1159) * [automation] Auto-update linters version, help and documentation (#1161) * Upgrade clj-kondo (#1165) * [automation] Auto-update linters version, help and documentation (#1164) * [automation] Auto-update linters version, help and documentation (#1167) * [automation] Auto-update linters version, help and documentation (#1170) * Retrieve licenses for documentation + fix config file + env issue (#1168) * [automation] Auto-update linters version, help and documentation * Disable Github Status reporter * Breaking change: GITHUB_STATUS_REPORTER disabled by default * Breaking change: set PRINT_ALL_FILES default to false * Deploy V6 image (#1035) * QuickFix CI job * New flavor Security (#1036) * Java PMD v0 * Java Pmd v0.01 * Working Java + pmd :) * changelog + doc * Genedate doc + manage offline mode * changelog * Bring back referring linters * Fix build * Automate update of changelog when new release (v0) * Do not create commit & tag with npm version * Move markdown formatting * .md * PMD install commands * More pmd descriptor infos + build * Fix megalinter errors * Fix PMD install commands + build * [MegaLinter] Apply linters fixes * Hardcode some licenses * [MegaLinter] Apply linters fixes * Add gitleaks * Build with gitleaks * Gitleaks fixes * changelog * New descriptor: repository TODO: deprecate git and credentials * New descriptor "repository" * Add Goodcheck Goodcheck updates * Fix PMD * Fix PMD * [MegaLinter] Apply linters fixes * Fix pmd installation * Typo * wget --quiet * Add trivy * Build v6-alpha flavors * Remove git & credentials descriptors + upgrade python base image * Upgrade python * New flavor Security v0 * Fix ansible-lint install * Deploy v6-alpha documentation * Fix test class quick build * Disable java pmd * Downgrade python version * SARIF v0 * Update descriptor JSON schema + retries for sgerrand url * Add SARIF output for checkov * Add SARIF output for eslint * [automation] Auto-update linters version, help and documentation (#1038) * Fix gitleaks * Build * Do not skip build if failed * Do not test SARIF when SARIF is not active on a linter * Update ansible install * Fix goodcheck tests * Fix markdown-table-formatter * Fix trivy command * Fix checkov test case + manage default sarif output file * use MegaLinter beta for now * Update CI for new default report folder + Manage {{REPORT_FOLDER}} in CLI variables * Exit code 1 for trivy * Fix replace_vars definition * Do not run test mega-linter-runner when docker build failed * Fix replace_vars * Downgrade v8r version * Fix arm test case * build * Fix again arm test case * Fix makedirs for report folder * Rename default report folder into megalinter-reports * Fix gitleaks * Try again gitleaks * Fix last errors * Fix internal lint errors Co-authored-by: nvuillam * v6-alpha for github action * Adapt CI for v6-alpha. (#1062) * Fix own MegaLinter errors (#1063) * Fix own MegaLinter errors * Do not use secretlint on report folder * Fix gitleaks own config * Use regexes in gitleaks toml config file * grmblmblm * try with paths * Regex to gather gitleaks errors * Make gitleaks non blocking * Update gitleaks descriptor * Debug gitleaks (#1068) * Debug gitleaks * Remove LinkedIn ID gitleaks check * Ignore .gitleaks.toml files * Update security flavor + toml gitleaks update to use regexes * Try again... * Fix gitleaks config (use regexes in paths) * Update default .gitleaks.toml files * Clean dev variables * Build * Retrofit latest v5 updates into v6 (#1070) * [automation] Auto-update linters version, help and documentation (#1038) * Implement new linter PHPLint (#1037) * add new phplint linter (see #1031) * use composer global install for overture/phplint * update changelog * fix feature #1043 (#1044) * Add @babel/eslint-parser as dependency for eslint (#1045) * [automation] Auto-update linters version, help and documentation (#1046) * [automation] Auto-update linters version, help and documentation + @babel-core * Add @babel-core dependency * Use node.js LTS and not nodejs-current * Downgrade v8r version * Fix arm test case * Fix again arm test case * [automation] Auto-update linters version, help and documentation * Build * [automation] Auto-update linters version, help and documentation (#1050) * [automation] Auto-update linters version, help and documentation (#1052) * [automation] Auto-update linters version, help and documentation * Update doc for gitlab MegaLinter config * Bandit default config file (#1051) * remove default parameters * add default bandit configfile built with bandit-config-generator command * update changelog * update bandit doc page Co-authored-by: Nicolas Vuillamy * Try again ktlint auto-upgrade (#976) * [automation] Auto-update linters version, help and documentation (#1055) * [automation] Auto-update linters version, help and documentation (#1056) * Docs & links (#1058) * Update stale config * Fix getting linter version of npm plugin. (#804) * [automation] Auto-update linters version, help and documentation (#1059) * Fix doc * [automation] Auto-update linters version, help and documentation (#1065) * [automation] Auto-update linters version, help and documentation (#1067) * build Co-authored-by: Laurent Laville * SARIF for gitleaks (#1069) * SARIF for gitleaks * Sarif python test class v0 * Lint fix + changelog * Generate security flavor * SARIF support for trivy (#1071) * [automation] Auto-update linters version, help and documentation (#1038) * Implement new linter PHPLint (#1037) * add new phplint linter (see #1031) * use composer global install for overture/phplint * update changelog * fix feature #1043 (#1044) * Add @babel/eslint-parser as dependency for eslint (#1045) * [automation] Auto-update linters version, help and documentation (#1046) * [automation] Auto-update linters version, help and documentation + @babel-core * Add @babel-core dependency * Use node.js LTS and not nodejs-current * Downgrade v8r version * Fix arm test case * Fix again arm test case * [automation] Auto-update linters version, help and documentation * Build * [automation] Auto-update linters version, help and documentation (#1050) * [automation] Auto-update linters version, help and documentation (#1052) * [automation] Auto-update linters version, help and documentation * Update doc for gitlab MegaLinter config * Bandit default config file (#1051) * remove default parameters * add default bandit configfile built with bandit-config-generator command * update changelog * update bandit doc page Co-authored-by: Nicolas Vuillamy * Try again ktlint auto-upgrade (#976) * [automation] Auto-update linters version, help and documentation (#1055) * [automation] Auto-update linters version, help and documentation (#1056) * Docs & links (#1058) * Update stale config * Fix getting linter version of npm plugin. (#804) * [automation] Auto-update linters version, help and documentation (#1059) * Fix doc * [automation] Auto-update linters version, help and documentation (#1065) * [automation] Auto-update linters version, help and documentation (#1067) * SARIF for gitleaks * Sarif python test class v0 * Lint fix + changelog * SARIF support for trivy * Accelerate and fix internal tests * Fix SARIF files * Fix trivy sarif args * [automation] Auto-update linters version, help and documentation (#1072) * Fix SarifReporter * Better handling of SARIF error management * Fix SARIF default file name use quick build * Fix sarif reporter exception management * Variabilize default release * Improve runtime perfs when FLAVOR_SUGGESTIONS: false (#1073) * Improve runtime perfs when FLAVOR_SUGGESTIONS: false * [MegaLinter] Apply linters fixes * Fix how to get MEGALINTER_FLAVOR * Fix ignore flavor suggestion test class Co-authored-by: nvuillam * Build Co-authored-by: Laurent Laville Co-authored-by: nvuillam * V6/popularity - Display github stars in all linters documentation (#1075) * Add popularity * Update descriptors to add linter_repo when missing * FLAVOR_SUGGESTIONS:false to improve perfs * Build * Enhance documentation (#1078) * Popularity column in all tables * More badges in linters list doc * cspell * Fix sarif test case (#1079) * Fix sarif test case * Fix hardcoded reporter folder name in test case * Remove dockerfilelint (#1080) * Remove dockerfilelint * changelog * Upgrade to AWS cfn-lint (#1085) * Upgrade to AWS cfn-lint * Build * Add SARIF management for cfn-lint * Add cfn-lint example SARIF output file * SARIF management for Hadolint (#1089) * SARIF management for Hadolint * Update .gitleaks.toml to ignore .mypy_cache folder * Catch SARIF error * Upgrade hadolint to 2.8.0-alpine * SARIF for checkstyle (#1093) * SARIF for ktlint (#1095) * SARIF for all eslint uses (#1094) * SARIF management for go revive (#1092) * SARIF management for go revive * fix descriptor quick build * SARIF Management for PHP PSALM (#1096) * Build doc * More SARIF examples * V6/docker standalone linters (#1099) * Build unique linters dockerfiles * Dockerfiles for unique linters + Improve perfs * CI to build standalone images * Fix CI * Matrix jobs: do not fail other jobs if one fails * Manage docker build --squash * Add test cases to "only" docker images * No codecov call when not running all tests * Create output sarif folder when SARIF is from stdout * Remove useless python packages for ML runtime * Remove pytest-cov pytest-timeout from runtime image * Optimize Until dotenv linter * gcc in all dockerfiles + go for actionlint * Add libffi-dev in all Docker images * Add make * add bash * add musl-dev * Fix linters install * gnugpg for php * Automate node & ruby-dev installation if packages are used in install * Fix dotnet install * More preset variables on single-linter docker images * typo * typo2 * Add ruby-bundler for gem packages * Remove PHP_BUILTIN as it has been replaced by PHP_PHPLINT * Fix descriptors and test class * Improve CI perfs for only-linters build * More fixes * Fix kotlin install * Fix raku install * Fix R * Fix scala * Fix TSX * Fix Vb .NET * Build * Linters page * rollback raku * Fix terraform_fmt & rollback raku * Try fix rakudo * Fix duplicate ARG and FROM in dockerfile * Fix python lint err * Disable lint_all_other_linters_files=true if in SINGLE_LINTER mode * lint fix * Reduce docker layers * Reduce again the list of docker build steps * Do not keep text logs if not wanted + linter delete SARIF files * Fix CI * Fix SARIF test case * Disable deprecated test case * Terrascan SARIF management (#1103) * Terrascan SARIF management * tflint SARIF management * Fix terrascan args * cspell * MegaLinter server (#1106) * PHP version switch (#1083) * fixe issue #1060 * fix hadolint error DL3059 * [automation] Auto-update linters version, help and documentation (#1088) * [automation] Auto-update linters version, help and documentation * Increase trivy timeout * [automation] Auto-update linters version, help and documentation (#1091) * Release MegaLinter v5.3.0 * [automation] Auto-update linters version, help and documentation (#1097) * Fix CHANGELOG * [automation] Auto-update linters version, help and documentation (#1098) * [automation] Auto-update linters version, help and documentation (#1100) * [automation] Auto-update linters version, help and documentation (#1101) * [automation] Auto-update linters version, help and documentation (#1104) * KEEP_ALIVE_MEGALINTER v0 * openssh * Build standalone linters only for linters managing SARIF * Entrypoint * Entrypoint: exit when test cases called * Add openrc * Try another way https://github.com/danielguerra69/alpine-sshd * Startup lines at the end * Test simple case with password * rhaaaa * Remove ssh stuff as we loose env variables * Server v0 * Server v0 * Add workspace argument * Expose on port 80 * Manage running processes * try debug flask * debug mode for server * v0 ? * Fix server for report file name * SARIF in http response * [automation] Auto-update linters version, help and documentation (#1107) * [automation] Auto-update linters version, help and documentation (#1109) * [automation] Auto-update linters version, help and documentation (#1113) * Bring back ssh * Set env variables for all users * [automation] Auto-update linters version, help and documentation (#1114) * [automation] Auto-update linters version, help and documentation (#1116) * [automation] Auto-update linters version, help and documentation (#1117) * new SSH way with tmux * Build * Allow PWD auth for testing * [automation] Auto-update linters version, help and documentation (#1118) * [automation] Auto-update linters version, help and documentation (#1121) * Release MegaLinter v5.4.0 * [automation] Auto-update linters version, help and documentation (#1122) * [automation] Auto-update linters version, help and documentation (#1123) * [automation] Auto-update linters version, help and documentation (#1124) * [automation] Auto-update linters version, help and documentation (#1129) * [clj-kondo] update docs and version to 2021.12.19 (#1126) Co-authored-by: nvuillam * fix "MegaLinter vs Super-Linter" link in README (#1130) Co-authored-by: Nicolas Vuillamy * Move ssh management to entrypoint * QuickFix * try again * Stop docker container if entrypoint fails * Sh in container * alias for megalinger when running in server mode (#1133) makes running megalinter in server mode easier * aliases * Build * tmux_exec * Build ! * [automation] Auto-update linters version, help and documentation (#1131) * gha * motd * build * -input and -output v0 * Use argparse * Use parse_known_args * config.set * [automation] Auto-update linters version, help and documentation (#1135) * DOCKER_DEFAULT_WORKSPACE_DIR & absolue path for --input argument * introduce shell script to convenience running from ssh (#1137) * Create megalinter_tmux * Update build.py * Build Co-authored-by: nvuillam * Use --input * Fix --input + CI * CI for Inbar (create branch named v6_inbar ) * [automation] Auto-update linters version, help and documentation (#1138) * [automation] Auto-update linters version, help and documentation (#1141) * [automation] Auto-update linters version, help and documentation (#1142) * Release MegaLinter v5.5.0 * V6 inbar (#1143) * capture std is optional capture std is optional * improve megalinter_tmux script add verbosity as an optional flag, improve some messages, add comments, fix script name in examples * Bash file as executable * Fix shellcheck issue https://github.com/koalaman/shellcheck/wiki/SC2124 * Python & Dockerfiles lint errors * cspell * Build * Ignore tmux_exec for bash controlling * pylint err * cspell Co-authored-by: Laurent Laville Co-authored-by: John Practicalli <250870+practicalli-john@users.noreply.github.com> Co-authored-by: Adam Ralph Co-authored-by: Inbar <5904674+InbarRose@users.noreply.github.com> * V6 semgrep (#1147) * Add semgrep * Manage cli_config_default_value * Manage case when SARIF output is only the last sdout line * Add python test files for semgrep * semgrep --error * use regex to extract json * Use find / rfind instead of regex * fix * fix crash * reverse does not have a return value * Fix sarif_default_output_file process * Check SARIF consistency in test classes * Fix position to extract JSON from stdout * position again * Remove SARIF file from previous runs * Stupid typo + remove aggregate SARIF if pre-existing ^^ * changelog * Fix lint errors + descriptor json schema * Build doc * Automatically select security rulesets for semgrep (#1148) * Automatically select security rulesets for semgrep * Test classes for semgrep security rulesets * Do not overwrite test class if already existing * semgrep check failure * Any v6- and v6_ branch generates standalone linters * lint fixes * document additional megalinter semgrep config vars * build * SARIF enhancements (and trivy failed attempts) (#1150) * More general info in sarif * Fix trivy install for SARIF * Build * Force sarif template path + upgrade trivy version * fix wget call * try chmod on sarif template * typo * trivy * Add devskim (#1152) * devskim v0 * devskim bad example * Fix number of errors count * fix & Build doc * changelog * cspell * Fix CI * cspell * Fix trivy ? * fix trivy ? (2) * Try fix gitleaks (#1157) * Try fix gitleaks * trivy * Workaround until next version of trivy * build * Revert "Try fix gitleaks" This reverts commit e7c1be65c9dadc585cdea4c1302d75146d3acf8e. * Remove default gitleaks use + --no-git * --no-git back * SARIF for npm-groovy-lint (#1158) * SARIF for npm-groovy-lint * Fix GroovyLinter custom class * Factorize * Manage dynamic --no-git presence for gitleaks (#1162) * Manage dynamic --no-git presence for gitleaks * lint fix * Test upload SARIF to github * Retrieve licenses * Fix mixed config file + env variables config * Link to licenses * Update links to licenses * Fixes * fix lint err * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam Co-authored-by: Laurent Laville Co-authored-by: John Practicalli <250870+practicalli-john@users.noreply.github.com> Co-authored-by: Adam Ralph Co-authored-by: Inbar <5904674+InbarRose@users.noreply.github.com> * [automation] Auto-update linters version, help and documentation (#1171) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1174) * Fix call to npm-groovy-lint (#1177) * Fix npm-groovy-lint call https://github.com/megalinter/megalinter/issues/1176 * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * lint fix * lint fix (2) * Make python linters play nice with each other (#1182) * Make Flake8 play nice with Black * Change black comment example * Make pylint play nice with Black * Make flake8 pass Co-authored-by: Sam Chorlton <> * Upgrade clj-kondo (#1181) * Bump cljkondo/clj-kondo from 2022.01.13-alpine to 2022.01.15-alpine Bumps cljkondo/clj-kondo from 2022.01.13-alpine to 2022.01.15-alpine. --- updated-dependencies: - dependency-name: cljkondo/clj-kondo dependency-type: direct:production ... Signed-off-by: dependabot[bot] * [automation] Auto-update linters version, help and documentation * upgrade clj-kondo Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix wrong status in reports when DISABLE_ERRORS is used (#1184) * Bump peter-evans/create-pull-request from 3.11.0 to 3.12.0 Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3.11.0 to 3.12.0. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v3.11.0...v3.12.0) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump actions/setup-node from 2.4.1 to 2.5.1 Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.4.1 to 2.5.1. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v2.4.1...v2.5.1) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump shelljs from 0.8.4 to 0.8.5 in /mega-linter-runner Bumps [shelljs](https://github.com/shelljs/shelljs) from 0.8.4 to 0.8.5. - [Release notes](https://github.com/shelljs/shelljs/releases) - [Changelog](https://github.com/shelljs/shelljs/blob/master/CHANGELOG.md) - [Commits](https://github.com/shelljs/shelljs/compare/v0.8.4...v0.8.5) --- updated-dependencies: - dependency-name: shelljs dependency-type: indirect ... Signed-off-by: dependabot[bot] * Fix wrong status in reports when DISABLE_ERRORS is used * [automation] Auto-update linters version, help and documentation * Fix wrong status in reports when DISABLE_ERRORS is used * Test cases fixes * fix test class * [MegaLinter] Apply linters fixes quick build * Fix test class quick build * Fix test class quick build * Update checkov & kics tests quick build Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: nvuillam * CHANGELOG * Release MegaLinter v5.6.0 * Fix v5 doc deployment (#1192) https://github.com/megalinter/megalinter/issues/1190 * Bump node-fetch from 2.6.6 to 2.6.7 in /mega-linter-runner (#1193) Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.6 to 2.6.7. - [Release notes](https://github.com/node-fetch/node-fetch/releases) - [Changelog](https://github.com/node-fetch/node-fetch/blob/main/docs/CHANGELOG.md) - [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.6...v2.6.7) --- updated-dependencies: - dependency-name: node-fetch dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * QuickFix doc generation * QuickFix doc generation (2) * [automation] Auto-update linters version, help and documentation (#1194) * Gitlab comment reporter (#732) * Gitlab comment reporter * remove pip requests package downgrade * typo * lint fixes * Build * Build * Use CI_SERVER_URL * Use more constant variables * Retrofit upgrades from v5 * Alternative way to find merge request id * Update reporters * Debug traces * Fixes * fix log * Manage MEGALINTER_ACCESS_TOKEN quick build * Quick build push step quick build push * Update doc & var name quick build push * Remove development logs * Update doc * Update & build doc * Doc & build * CI job instead of CI Action * Lint fixes * [automation] Auto-update linters version, help and documentation (#1195) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes * QuickFix Gitlab comments reporter quick build push Co-authored-by: nvuillam * Fix Gitlab comment reporter when MR not found (#1197) * QuickFix Gitlab Comments reporter for self-hosted instances * [automation] Auto-update linters version, help and documentation (#1198) * [automation] Auto-update linters version, help and documentation * QuickFix lint * [automation] Auto-update linters version, help and documentation (#1201) * [automation] Auto-update linters version, help and documentation * Fix sqlfluff bug * Add configuration file option for SQLFluff (#1200) * Add configuration file for SQLFluff * Correct config file name * Update megalinter/descriptors/sql.megalinter-descriptor.yml Co-authored-by: nvuillam * Fix Github auth on Azure Pipelines (#1202) * Fix Github auth on Azure Pipelines Fix issue when using `VALIDATE_ALL_CODEBASE: false` on Azure Pipelines by defining auth header in CI env variable GIT_AUTHORIZATION_BEARER ([#1125](https://github.com/megalinter/megalinter/issues/1125)) * [MegaLinter] Apply linters fixes * Update doc for Azure Co-authored-by: nvuillam * Add compatibility for prettier (#1209) Co-authored-by: Sam Chorlton <> * [automation] Auto-update linters version, help and documentation (#1203) * [automation] Auto-update linters version, help and documentation * Remove downgrade of sqlfluff https://github.com/megalinter/megalinter/pull/1200 * Use .gitignore as .secretlintignore when necessary (#1210) * Use .gitignore as .secretlintignore when necessary * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * Fix tflint initialization (#1204) * Fix tflint initialization Fix tflint initialization so it uses configuration file when defined ([#1134](https://github.com/megalinter/megalinter/issues/1134)) * changelog * Fix python lint errors * [automation] Auto-update linters version, help and documentation (#1211) * Undo rubocop downgrade (#1214) * Fix Gitlab comment reporter (#1215) * Fix Gitlab comment reporter * Update Gitlab documentation with gif tutorial * Lint fix * Improve linter perfs & logs (#1217) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes * HTMLHint config to count errors + test method * Use list_of_files mode with htmlhint * changelog * ShellCheck: cli_lint_mode: list_of_files to improve perfs * shfmt ci_lint_mode: list_of_files + regex count quick build push * Update test case for markdown-link-check quick build push * test (TODO: remove after) * Fix lint error quick build push * cpplint: Display correct number of errors in logs quick build push * Count actionlint errors quick build push * Count errors perlcritic quick build push * Count chktex errors quick build push * Enhance test class error message quick build push * Let's not test TAP anymore * Update test case files quick build push * Fix perlcritic test case quick build push * Fix python test cases quick build push * Fix perlcritic regex count quick build push * Fix SF test cases quick build push * Fix shell test case quick build push * Bash exec doc * Fix doc Fixes https://github.com/megalinter/megalinter/issues/1212 * Fix salesforce config quick build push * Fix mypy test case quick build push * Update mypy ref url quick build push * Revert "test (TODO: remove after)" This reverts commit 2dfd39edd1666e85ed28373f36475df5c5c63ccf. * Build quick build * [MegaLinter] Apply linters fixes quick build Co-authored-by: nvuillam * Use apk to install shfmt * Downgrade snakemake * Downgrade snakemake (#1218) * Downgrade snakemake * Downgrade snakefmt * [automation] Auto-update linters version, help and documentation (#1219) * [automation] Auto-update linters version, help and documentation * Update GHA template * Change snakemake install method then Build * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1222) * Order changelog * Release MegaLinter v5.7.0 * Update .cspell default config (#1226) * Improve performances (#1227) * stylelint: list_of_files * standard: list_of_files * markdown-link-check: list_of_files * Upgrade link ref * [automation] Auto-update linters version, help and documentation (#1225) * [automation] Auto-update linters version, help and documentation (#1230) * Manage before_exit() & clean git repo (#1232) Fixes https://github.com/megalinter/megalinter/issues/1125 quick build push * [automation] Auto-update linters version, help and documentation (#1233) * [automation] Auto-update linters version, help and documentation (#1235) * [automation] Auto-update linters version, help and documentation (#1238) * Auto-upgrade pip + temporary disable snakemake + fix gitlab error message (#1236) * Auto-upgrade pip * Manage disable linter + disable snakefmt * Undowngrade snakemake + build * Fix upgrade pip & lint fix * Lint fix * [MegaLinter] Apply linters fixes * Fix build * [MegaLinter] Apply linters fixes * Fix gitlab token error labels * Disable snakemake test. Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1240) * Release MegaLinter v5.7.1 * Animated gif for assisted configuration * [automation] Auto-update linters version, help and documentation (#1241) * [automation] Auto-update linters version, help and documentation (#1242) * [automation] Auto-update linters version, help and documentation (#1243) * Fix GitlabCommentReporter raise unhandled exception if no merge request has been found (#1247) * [automation] Auto-update linters version, help and documentation (#1245) * Doc images (#1251) * Bump peter-evans/create-pull-request from 3.12.0 to 3.12.1 Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3.12.0 to 3.12.1. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v3.12.0...v3.12.1) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * cspell + sample ML users * animated gifs * Build. * changelog Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add publish artifact task in azure pipeline doc * [automation] Auto-update linters version, help and documentation (#1250) * [automation] Auto-update linters version, help and documentation * cspell * Manage Gitlab certificate (#1249) * Manage gitlab certificate * Build * Manage GITLAB_CUSTOM_CERTIFICATE quick build push * Fix python issue quick build push * Error msg doc * [MegaLinter] Apply linters fixes * Update config json schema quick build push Co-authored-by: nvuillam * Allow Eslint with config in package.json #1205 (#1206) * Allow Eslint with config in package.json #1205 * Allow to check prop existence in active_only_if_file_found * Lint fix Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1253) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * Gitlab reporter doc * cspell * Avoid storing copies of files in layer for kubeval, shellcheck, and misspell (#1229) * Avoid storing copy in layer for kubeval, shellcheck, misspell The copies are removed in the layer by immediatly deleting the files in the same `RUN` command. The LICENSE files are kept. * Apply changes in descriptors to Dockerfiles * Improve call of ansible-lint (#1255) * Allow Eslint with config in package.json #1205 * Allow to check prop existence in active_only_if_file_found * Lint fix * Fix ansible-lint test cases quick build push * [MegaLinter] Apply linters fixes * Fix ansible test cases (2) * Fix ansible test cases (2) quick build push * Fix call to ansible-lint * Build * Install ansible-lint using pip * Update ansible-lint test cases * Count errors & update ansible-lint test cases * [MegaLinter] Apply linters fixes * Move .ansible-lint at the good location Co-authored-by: Vitalii Tverdokhlib Co-authored-by: nvuillam * changelog * [automation] Auto-update linters version, help and documentation (#1257) * Fix suggestion to use proper variable name (#1261) * Fix suggestion to use proper variable name * Update CHANGELOG.md * [automation] Auto-update linters version, help and documentation (#1260) * [automation] Auto-update linters version, help and documentation (#1263) * Update mkdocs.yml * [automation] Auto-update linters version, help and documentation (#1271) * [automation] Auto-update linters version, help and documentation (#1272) * [automation] Auto-update linters version, help and documentation * more users * Terrascan: cli_lint_mode = project (#1274) * Terrascan: cli_lint_mode = project * terrascan: config arg name & config file name * trivy * [automation] Auto-update linters version, help and documentation (#1273) * [automation] Auto-update linters version, help and documentation (#1278) * [automation] Auto-update linters version, help and documentation (#1280) * Release MegaLinter v5.8.0 * trivy * [automation] Auto-update linters version, help and documentation (#1284) * [automation] Auto-update linters version, help and documentation * trivy * Use latest npm version (#1276) * Use latest npm * Build * WORKDIR / * trivy * Generate JSON schema HTML doc when bash build.sh --doc is called (#1289) * Generate JSON schema HTML doc when bash build.sh --doc is called * changelog * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * Upgrade clj-kondo to cljkondo/clj-kondo:2022.02.09-alpine (#1281) * more users * Upgrade clj-kondo to cljkondo/clj-kondo:2022.02.09-alpine * rubocop: remove `--force-exclusion` from auto-added parameters (#1290) Fixes https://github.com/megalinter/megalinter/issues/302 * New linter: kubeconform (#1285) * New linter: kubeconform * kubeconform: Fix launch cmd * kubeconform: fix spelling * kubeconform: fix error count * kubeconform: fix regex * kubeconfirm: adding bad files to test counts * Force rebuild * Rollback license update ! * Remove JSON schema HTML doc from build.py * Recommended extensions for MegaLinter contribution (#1291) * Bump actions/github-script from 5 to 6 Bumps [actions/github-script](https://github.com/actions/github-script) from 5 to 6. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/github-script dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Add recommended VsCode extensions for MegaLinter development Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [automation] Auto-update linters version, help and documentation (#1294) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes * trivy Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1295) * [automation] Auto-update linters version, help and documentation * lint * Add shell script linters to ci_light flavor (#1299) * Add shell script linters to ci_light flavor Use-case: many of my Docker-related projects have glue shell scripts (e.g., `/entrypoint.sh`) that are added to images (e.g., `COPY entrypoint.sh /`) that are run when the image is run (e.g., `ENTRYPOINT ["/entrypoint.sh"]`) and I would like to have them scanned without having to pull down the full scanner. * Add sh linters to ci_light flavor + build Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1300) * [automation] Auto-update linters version, help and documentation (#1302) * [automation] Auto-update linters version, help and documentation (#1303) * Switch from jdk8 to jdk11 (#1309) * Terrascan init as pre-command (#1311) * [automation] Auto-update linters version, help and documentation * terrascan init as pre-command * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * Reactivate snakefmt (#1312) * [automation] Auto-update linters version, help and documentation * [automation] Auto-update linters version, help and documentation (#1315) * [automation] Auto-update linters version, help and documentation (#1318) * [automation] Auto-update linters version, help and documentation (#1319) * [automation] Auto-update linters version, help and documentation (#1320) * [automation] Auto-update linters version, help and documentation (#1322) * [automation] Auto-update linters version, help and documentation (#1323) * [automation] Auto-update linters version, help and documentation (#1325) * [automation] Auto-update linters version, help and documentation (#1326) * [automation] Auto-update linters version, help and documentation * Users & fix * [automation] Auto-update linters version, help and documentation * [automation] Auto-update linters version, help and documentation (#1327) * [automation] Auto-update linters version, help and documentation (#1328) * [automation] Auto-update linters version, help and documentation (#1329) * Update SQLFluff default config with latest options (#1331) * Update SQLFluff default config for 0.11.0 * Sync with latest * [automation] Auto-update linters version, help and documentation (#1330) * [automation] Auto-update linters version, help and documentation (#1332) * [automation] Auto-update linters version, help and documentation (#1333) * [automation] Auto-update linters version, help and documentation * Fix ansible-lint test case * [automation] Auto-update linters version, help and documentation (#1335) * [automation] Auto-update linters version, help and documentation (#1336) * Upgrade hadolint (#1338) * Upgrade hadolint * hadolint config * [automation] Auto-update linters version, help and documentation (#1339) * Add article * Doc * doc * [automation] Auto-update linters version, help and documentation (#1342) * Release MegaLinter v5.10.0 * [automation] Auto-update linters version, help and documentation (#1343) * [automation] Auto-update linters version, help and documentation (#1344) * [automation] Auto-update linters version, help and documentation * cspell * [automation] Auto-update linters version, help and documentation (#1346) * [automation] Auto-update linters version, help and documentation (#1349) * [automation] Auto-update linters version, help and documentation * trivy * [automation] Auto-update linters version, help and documentation (#1351) * [automation] Auto-update linters version, help and documentation * Disable rstfmt * pylint * Github Comment Reporter: Use a html comment to mark the comment (#1356) This replaces the old method, which looked for the "see error details" link, but that link was not always present in comments. The comment records the current workflow and jobid, so multiple mega-linters can comment on the same PR without colliding. Co-authored-by: Nicolas Vuillamy * [MegaLinter] Apply linters fixes (#1357) quick build Co-authored-by: nvuillam * Display plugin url in MegaLinter output logs + quick fixes (#1358) * Display plugin url in MegaLinter output logs * [MegaLinter] Apply linters fixes * Add tflint-aws plugin installation to match new version of tflint * Fix glibc public key download * downgrade tflint * fix sgerrand url Co-authored-by: nvuillam * Improve the comment marker format (#1359) Instead of just joining the workflow name and jobid without spacing, encapsulate both in quotes and give them a `workflow=` and `jobid=` prefix to aid debugging. Co-authored-by: Nicolas Vuillamy * [automation] Auto-update linters version, help and documentation (#1362) * Doc: jenkins script to upload artifacts (#1363) * Doc: jenkins script to upload artifacts * changelog * [automation] Auto-update linters version, help and documentation (#1366) * Bump minimist from 1.2.5 to 1.2.6 in /mega-linter-runner Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] * [automation] Auto-update linters version, help and documentation * fix mypy test case * [automation] Auto-update linters version, help and documentation Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Upgrade hadolint (#1370) * Bump hadolint/hadolint from v2.9.1-alpine to v2.9.3-alpine Bumps hadolint/hadolint from v2.9.1-alpine to v2.9.3-alpine. --- updated-dependencies: - dependency-name: hadolint/hadolint dependency-type: direct:production ... Signed-off-by: dependabot[bot] * Upgrade hadolint Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * markdown-links-check: allow 203 as valid return code (#1369) * [automation] Auto-update linters version, help and documentation (#1371) * [automation] Auto-update linters version, help and documentation (#1375) * User stats (#1377) * [automation] Auto-update linters version, help and documentation * Disable rstfmt * Order MegaLinter users * pylint * Updated github users * All users page generation * Articles section * build doc * More users * More users * cspell config * [automation] Auto-update linters version, help and documentation (#1381) * Update doc * [automation] Auto-update linters version, help and documentation (#1382) * [automation] Auto-update linters version, help and documentation (#1384) * Fix `no override and no default toolchain set` when lint rust with clippy via github-action (#1385) FIX #975 * [automation] Auto-update linters version, help and documentation (#1387) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1388) * Manage dependencies & upgrade clj-kondo & hadolint (#1396) * Bump actions/setup-python from 2 to 3.1.1 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 3.1.1. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v2...v3.1.1) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump actions/upload-artifact from 2 to 3 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump cljkondo/clj-kondo from 2022.02.09-alpine to 2022.04.08-alpine Bumps cljkondo/clj-kondo from 2022.02.09-alpine to 2022.04.08-alpine. --- updated-dependencies: - dependency-name: cljkondo/clj-kondo dependency-type: direct:production ... Signed-off-by: dependabot[bot] * Bump actions/checkout from 2.4.0 to 3.0.0 Bumps [actions/checkout](https://github.com/actions/checkout) from 2.4.0 to 3.0.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.4.0...v3.0.0) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump actions/stale from 4 to 5 Bumps [actions/stale](https://github.com/actions/stale) from 4 to 5. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * [automation] Auto-update linters version, help and documentation * Upgrade clj-kondo and hadolint, + fix sqlfluff test case * Fix clj-kondo test case for new version Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [automation] Auto-update linters version, help and documentation (#1391) * [automation] Auto-update linters version, help and documentation (#1400) * create cspell report dirs if required (#1399) * fix(cspell): Create config dirs if missing If a cspell config is located in some directory we need to create the same tree under the `report` dir * docs(CHANGELOG): added fix note Co-authored-by: Nicolas Vuillamy * [automation] Auto-update linters version, help and documentation (#1401) * Release MegaLinter v5.11.0 * [automation] Auto-update linters version, help and documentation (#1405) * Manage FAIL_IF_UPDATED_SOURCES option (#1410) * Bump actions/setup-python from 3.1.1 to 3.1.2 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3.1.1 to 3.1.2. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v3.1.1...v3.1.2) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Manage FAIL_IF_UPDATED_SOURCES option * [MegaLinter] Apply linters fixes * Bump actions/checkout from 3.0.0 to 3.0.1 Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3.0.0...v3.0.1) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Fix git issue Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: nvuillam * QuickFix * Try fix Git CVE issue for own linting (#1415) * Try fix Git CVE issue * Try again fix git issue * Fix CI * Allow git generic safe directory As we are supposed to trust the machine and repo we use MegaLinter on * Dynamic add git safe.directory (#1417) * Dynamic add git safe.directory quick build * Test auto-update too * [automation] Auto-update linters version, help and documentation * Quickfix json schema FAIL_IF_UPDATED_SOURCES * Upgrade multiple dependencies (#1419) * Bump pascalgn/automerge-action from 0.14.3 to 0.15.2 Bumps [pascalgn/automerge-action](https://github.com/pascalgn/automerge-action) from 0.14.3 to 0.15.2. - [Release notes](https://github.com/pascalgn/automerge-action/releases) - [Commits](https://github.com/pascalgn/automerge-action/compare/v0.14.3...v0.15.2) --- updated-dependencies: - dependency-name: pascalgn/automerge-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump peter-evans/create-pull-request from 3 to 4.0.1 Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3 to 4.0.1. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v3...v4.0.1) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump terraform-linters/tflint from v0.34.1 to v0.35.0 Bumps terraform-linters/tflint from v0.34.1 to v0.35.0. --- updated-dependencies: - dependency-name: terraform-linters/tflint dependency-type: direct:production ... Signed-off-by: dependabot[bot] * Bump actions/setup-node from 2.5.1 to 3.1.1 Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.5.1 to 3.1.1. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v2.5.1...v3.1.1) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * upgrade tflint Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [automation] Auto-update linters version, help and documentation (#1424) * [automation] Auto-update linters version, help and documentation (#1429) * [automation] Auto-update linters version, help and documentation * Update .trivyignore * [automation] Auto-update linters version, help and documentation (#1431) * [automation] Auto-update linters version, help and documentation (#1432) * Release MegaLinter v5.12.0 * Fixes * fixes * git safe.directory in ox called SH * test cases * Fix JS * Fixes Co-authored-by: Laurent Laville Co-authored-by: John Practicalli <250870+practicalli-john@users.noreply.github.com> Co-authored-by: Adam Ralph Co-authored-by: nvuillam Co-authored-by: Inbar <5904674+InbarRose@users.noreply.github.com> Co-authored-by: Sam Chorlton <10245822+schorlton@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Barry Pollard Co-authored-by: IM <91187869+1vm0@users.noreply.github.com> Co-authored-by: Vitalii Tverdokhlib Co-authored-by: Edouard Choinière <27212526+echoix@users.noreply.github.com> Co-authored-by: Benoît Bleuzé Co-authored-by: Yann Jouanique Co-authored-by: Wes Dean Co-authored-by: Martijn Pieters Co-authored-by: Martijn Pieters Co-authored-by: David Bernard Co-authored-by: Andrew Sheridan <38504307+andrewasheridan@users.noreply.github.com> * Retrofits from V5 (#1525) * Fix Gitlab comment reporter when MR not found (#1197) * QuickFix Gitlab Comments reporter for self-hosted instances * [automation] Auto-update linters version, help and documentation (#1198) * [automation] Auto-update linters version, help and documentation * QuickFix lint * [automation] Auto-update linters version, help and documentation (#1201) * [automation] Auto-update linters version, help and documentation * Fix sqlfluff bug * Add configuration file option for SQLFluff (#1200) * Add configuration file for SQLFluff * Correct config file name * Update megalinter/descriptors/sql.megalinter-descriptor.yml Co-authored-by: nvuillam * Fix Github auth on Azure Pipelines (#1202) * Fix Github auth on Azure Pipelines Fix issue when using `VALIDATE_ALL_CODEBASE: false` on Azure Pipelines by defining auth header in CI env variable GIT_AUTHORIZATION_BEARER ([#1125](https://github.com/megalinter/megalinter/issues/1125)) * [MegaLinter] Apply linters fixes * Update doc for Azure Co-authored-by: nvuillam * Add compatibility for prettier (#1209) Co-authored-by: Sam Chorlton <> * [automation] Auto-update linters version, help and documentation (#1203) * [automation] Auto-update linters version, help and documentation * Remove downgrade of sqlfluff https://github.com/megalinter/megalinter/pull/1200 * Use .gitignore as .secretlintignore when necessary (#1210) * Use .gitignore as .secretlintignore when necessary * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * Fix tflint initialization (#1204) * Fix tflint initialization Fix tflint initialization so it uses configuration file when defined ([#1134](https://github.com/megalinter/megalinter/issues/1134)) * changelog * Fix python lint errors * [automation] Auto-update linters version, help and documentation (#1211) * Undo rubocop downgrade (#1214) * Fix Gitlab comment reporter (#1215) * Fix Gitlab comment reporter * Update Gitlab documentation with gif tutorial * Lint fix * Improve linter perfs & logs (#1217) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes * HTMLHint config to count errors + test method * Use list_of_files mode with htmlhint * changelog * ShellCheck: cli_lint_mode: list_of_files to improve perfs * shfmt ci_lint_mode: list_of_files + regex count quick build push * Update test case for markdown-link-check quick build push * test (TODO: remove after) * Fix lint error quick build push * cpplint: Display correct number of errors in logs quick build push * Count actionlint errors quick build push * Count errors perlcritic quick build push * Count chktex errors quick build push * Enhance test class error message quick build push * Let's not test TAP anymore * Update test case files quick build push * Fix perlcritic test case quick build push * Fix python test cases quick build push * Fix perlcritic regex count quick build push * Fix SF test cases quick build push * Fix shell test case quick build push * Bash exec doc * Fix doc Fixes https://github.com/megalinter/megalinter/issues/1212 * Fix salesforce config quick build push * Fix mypy test case quick build push * Update mypy ref url quick build push * Revert "test (TODO: remove after)" This reverts commit 2dfd39edd1666e85ed28373f36475df5c5c63ccf. * Build quick build * [MegaLinter] Apply linters fixes quick build Co-authored-by: nvuillam * Use apk to install shfmt * Downgrade snakemake * Downgrade snakemake (#1218) * Downgrade snakemake * Downgrade snakefmt * [automation] Auto-update linters version, help and documentation (#1219) * [automation] Auto-update linters version, help and documentation * Update GHA template * Change snakemake install method then Build * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1222) * Order changelog * Release MegaLinter v5.7.0 * Update .cspell default config (#1226) * Improve performances (#1227) * stylelint: list_of_files * standard: list_of_files * markdown-link-check: list_of_files * Upgrade link ref * [automation] Auto-update linters version, help and documentation (#1225) * [automation] Auto-update linters version, help and documentation (#1230) * Manage before_exit() & clean git repo (#1232) Fixes https://github.com/megalinter/megalinter/issues/1125 quick build push * [automation] Auto-update linters version, help and documentation (#1233) * [automation] Auto-update linters version, help and documentation (#1235) * [automation] Auto-update linters version, help and documentation (#1238) * Auto-upgrade pip + temporary disable snakemake + fix gitlab error message (#1236) * Auto-upgrade pip * Manage disable linter + disable snakefmt * Undowngrade snakemake + build * Fix upgrade pip & lint fix * Lint fix * [MegaLinter] Apply linters fixes * Fix build * [MegaLinter] Apply linters fixes * Fix gitlab token error labels * Disable snakemake test. Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1240) * Release MegaLinter v5.7.1 * Animated gif for assisted configuration * [automation] Auto-update linters version, help and documentation (#1241) * [automation] Auto-update linters version, help and documentation (#1242) * [automation] Auto-update linters version, help and documentation (#1243) * Fix GitlabCommentReporter raise unhandled exception if no merge request has been found (#1247) * [automation] Auto-update linters version, help and documentation (#1245) * Doc images (#1251) * Bump peter-evans/create-pull-request from 3.12.0 to 3.12.1 Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3.12.0 to 3.12.1. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v3.12.0...v3.12.1) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * cspell + sample ML users * animated gifs * Build. * changelog Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add publish artifact task in azure pipeline doc * [automation] Auto-update linters version, help and documentation (#1250) * [automation] Auto-update linters version, help and documentation * cspell * Manage Gitlab certificate (#1249) * Manage gitlab certificate * Build * Manage GITLAB_CUSTOM_CERTIFICATE quick build push * Fix python issue quick build push * Error msg doc * [MegaLinter] Apply linters fixes * Update config json schema quick build push Co-authored-by: nvuillam * Allow Eslint with config in package.json #1205 (#1206) * Allow Eslint with config in package.json #1205 * Allow to check prop existence in active_only_if_file_found * Lint fix Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1253) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * Gitlab reporter doc * cspell * Avoid storing copies of files in layer for kubeval, shellcheck, and misspell (#1229) * Avoid storing copy in layer for kubeval, shellcheck, misspell The copies are removed in the layer by immediatly deleting the files in the same `RUN` command. The LICENSE files are kept. * Apply changes in descriptors to Dockerfiles * Improve call of ansible-lint (#1255) * Allow Eslint with config in package.json #1205 * Allow to check prop existence in active_only_if_file_found * Lint fix * Fix ansible-lint test cases quick build push * [MegaLinter] Apply linters fixes * Fix ansible test cases (2) * Fix ansible test cases (2) quick build push * Fix call to ansible-lint * Build * Install ansible-lint using pip * Update ansible-lint test cases * Count errors & update ansible-lint test cases * [MegaLinter] Apply linters fixes * Move .ansible-lint at the good location Co-authored-by: Vitalii Tverdokhlib Co-authored-by: nvuillam * changelog * [automation] Auto-update linters version, help and documentation (#1257) * Fix suggestion to use proper variable name (#1261) * Fix suggestion to use proper variable name * Update CHANGELOG.md * [automation] Auto-update linters version, help and documentation (#1260) * [automation] Auto-update linters version, help and documentation (#1263) * Update mkdocs.yml * [automation] Auto-update linters version, help and documentation (#1271) * [automation] Auto-update linters version, help and documentation (#1272) * [automation] Auto-update linters version, help and documentation * more users * Terrascan: cli_lint_mode = project (#1274) * Terrascan: cli_lint_mode = project * terrascan: config arg name & config file name * trivy * [automation] Auto-update linters version, help and documentation (#1273) * [automation] Auto-update linters version, help and documentation (#1278) * [automation] Auto-update linters version, help and documentation (#1280) * Release MegaLinter v5.8.0 * trivy * [automation] Auto-update linters version, help and documentation (#1284) * [automation] Auto-update linters version, help and documentation * trivy * Use latest npm version (#1276) * Use latest npm * Build * WORKDIR / * trivy * Generate JSON schema HTML doc when bash build.sh --doc is called (#1289) * Generate JSON schema HTML doc when bash build.sh --doc is called * changelog * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * Upgrade clj-kondo to cljkondo/clj-kondo:2022.02.09-alpine (#1281) * more users * Upgrade clj-kondo to cljkondo/clj-kondo:2022.02.09-alpine * rubocop: remove `--force-exclusion` from auto-added parameters (#1290) Fixes https://github.com/megalinter/megalinter/issues/302 * New linter: kubeconform (#1285) * New linter: kubeconform * kubeconform: Fix launch cmd * kubeconform: fix spelling * kubeconform: fix error count * kubeconform: fix regex * kubeconfirm: adding bad files to test counts * Force rebuild * Rollback license update ! * Remove JSON schema HTML doc from build.py * Recommended extensions for MegaLinter contribution (#1291) * Bump actions/github-script from 5 to 6 Bumps [actions/github-script](https://github.com/actions/github-script) from 5 to 6. - [Release notes](https://github.com/actions/github-script/releases) - [Commits](https://github.com/actions/github-script/compare/v5...v6) --- updated-dependencies: - dependency-name: actions/github-script dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Add recommended VsCode extensions for MegaLinter development Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [automation] Auto-update linters version, help and documentation (#1294) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes * trivy Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1295) * [automation] Auto-update linters version, help and documentation * lint * Add shell script linters to ci_light flavor (#1299) * Add shell script linters to ci_light flavor Use-case: many of my Docker-related projects have glue shell scripts (e.g., `/entrypoint.sh`) that are added to images (e.g., `COPY entrypoint.sh /`) that are run when the image is run (e.g., `ENTRYPOINT ["/entrypoint.sh"]`) and I would like to have them scanned without having to pull down the full scanner. * Add sh linters to ci_light flavor + build Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1300) * [automation] Auto-update linters version, help and documentation (#1302) * [automation] Auto-update linters version, help and documentation (#1303) * Switch from jdk8 to jdk11 (#1309) * Terrascan init as pre-command (#1311) * [automation] Auto-update linters version, help and documentation * terrascan init as pre-command * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * Reactivate snakefmt (#1312) * [automation] Auto-update linters version, help and documentation * [automation] Auto-update linters version, help and documentation (#1315) * [automation] Auto-update linters version, help and documentation (#1318) * [automation] Auto-update linters version, help and documentation (#1319) * [automation] Auto-update linters version, help and documentation (#1320) * [automation] Auto-update linters version, help and documentation (#1322) * [automation] Auto-update linters version, help and documentation (#1323) * [automation] Auto-update linters version, help and documentation (#1325) * [automation] Auto-update linters version, help and documentation (#1326) * [automation] Auto-update linters version, help and documentation * Users & fix * [automation] Auto-update linters version, help and documentation * [automation] Auto-update linters version, help and documentation (#1327) * [automation] Auto-update linters version, help and documentation (#1328) * [automation] Auto-update linters version, help and documentation (#1329) * Update SQLFluff default config with latest options (#1331) * Update SQLFluff default config for 0.11.0 * Sync with latest * [automation] Auto-update linters version, help and documentation (#1330) * [automation] Auto-update linters version, help and documentation (#1332) * [automation] Auto-update linters version, help and documentation (#1333) * [automation] Auto-update linters version, help and documentation * Fix ansible-lint test case * [automation] Auto-update linters version, help and documentation (#1335) * [automation] Auto-update linters version, help and documentation (#1336) * Upgrade hadolint (#1338) * Upgrade hadolint * hadolint config * [automation] Auto-update linters version, help and documentation (#1339) * Add article * Doc * doc * [automation] Auto-update linters version, help and documentation (#1342) * Release MegaLinter v5.10.0 * [automation] Auto-update linters version, help and documentation (#1343) * [automation] Auto-update linters version, help and documentation (#1344) * [automation] Auto-update linters version, help and documentation * cspell * [automation] Auto-update linters version, help and documentation (#1346) * [automation] Auto-update linters version, help and documentation (#1349) * [automation] Auto-update linters version, help and documentation * trivy * [automation] Auto-update linters version, help and documentation (#1351) * [automation] Auto-update linters version, help and documentation * Disable rstfmt * pylint * Github Comment Reporter: Use a html comment to mark the comment (#1356) This replaces the old method, which looked for the "see error details" link, but that link was not always present in comments. The comment records the current workflow and jobid, so multiple mega-linters can comment on the same PR without colliding. Co-authored-by: Nicolas Vuillamy * [MegaLinter] Apply linters fixes (#1357) quick build Co-authored-by: nvuillam * Display plugin url in MegaLinter output logs + quick fixes (#1358) * Display plugin url in MegaLinter output logs * [MegaLinter] Apply linters fixes * Add tflint-aws plugin installation to match new version of tflint * Fix glibc public key download * downgrade tflint * fix sgerrand url Co-authored-by: nvuillam * Improve the comment marker format (#1359) Instead of just joining the workflow name and jobid without spacing, encapsulate both in quotes and give them a `workflow=` and `jobid=` prefix to aid debugging. Co-authored-by: Nicolas Vuillamy * [automation] Auto-update linters version, help and documentation (#1362) * Doc: jenkins script to upload artifacts (#1363) * Doc: jenkins script to upload artifacts * changelog * [automation] Auto-update linters version, help and documentation (#1366) * Bump minimist from 1.2.5 to 1.2.6 in /mega-linter-runner Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] * [automation] Auto-update linters version, help and documentation * fix mypy test case * [automation] Auto-update linters version, help and documentation Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Upgrade hadolint (#1370) * Bump hadolint/hadolint from v2.9.1-alpine to v2.9.3-alpine Bumps hadolint/hadolint from v2.9.1-alpine to v2.9.3-alpine. --- updated-dependencies: - dependency-name: hadolint/hadolint dependency-type: direct:production ... Signed-off-by: dependabot[bot] * Upgrade hadolint Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * markdown-links-check: allow 203 as valid return code (#1369) * [automation] Auto-update linters version, help and documentation (#1371) * [automation] Auto-update linters version, help and documentation (#1375) * User stats (#1377) * [automation] Auto-update linters version, help and documentation * Disable rstfmt * Order MegaLinter users * pylint * Updated github users * All users page generation * Articles section * build doc * More users * More users * cspell config * [automation] Auto-update linters version, help and documentation (#1381) * Update doc * [automation] Auto-update linters version, help and documentation (#1382) * [automation] Auto-update linters version, help and documentation (#1384) * Fix `no override and no default toolchain set` when lint rust with clippy via github-action (#1385) FIX #975 * [automation] Auto-update linters version, help and documentation (#1387) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1388) * Manage dependencies & upgrade clj-kondo & hadolint (#1396) * Bump actions/setup-python from 2 to 3.1.1 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 2 to 3.1.1. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v2...v3.1.1) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump actions/upload-artifact from 2 to 3 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 2 to 3. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump cljkondo/clj-kondo from 2022.02.09-alpine to 2022.04.08-alpine Bumps cljkondo/clj-kondo from 2022.02.09-alpine to 2022.04.08-alpine. --- updated-dependencies: - dependency-name: cljkondo/clj-kondo dependency-type: direct:production ... Signed-off-by: dependabot[bot] * Bump actions/checkout from 2.4.0 to 3.0.0 Bumps [actions/checkout](https://github.com/actions/checkout) from 2.4.0 to 3.0.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2.4.0...v3.0.0) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump actions/stale from 4 to 5 Bumps [actions/stale](https://github.com/actions/stale) from 4 to 5. - [Release notes](https://github.com/actions/stale/releases) - [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/stale/compare/v4...v5) --- updated-dependencies: - dependency-name: actions/stale dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * [automation] Auto-update linters version, help and documentation * Upgrade clj-kondo and hadolint, + fix sqlfluff test case * Fix clj-kondo test case for new version Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [automation] Auto-update linters version, help and documentation (#1391) * [automation] Auto-update linters version, help and documentation (#1400) * create cspell report dirs if required (#1399) * fix(cspell): Create config dirs if missing If a cspell config is located in some directory we need to create the same tree under the `report` dir * docs(CHANGELOG): added fix note Co-authored-by: Nicolas Vuillamy * [automation] Auto-update linters version, help and documentation (#1401) * Release MegaLinter v5.11.0 * [automation] Auto-update linters version, help and documentation (#1405) * Manage FAIL_IF_UPDATED_SOURCES option (#1410) * Bump actions/setup-python from 3.1.1 to 3.1.2 Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3.1.1 to 3.1.2. - [Release notes](https://github.com/actions/setup-python/releases) - [Commits](https://github.com/actions/setup-python/compare/v3.1.1...v3.1.2) --- updated-dependencies: - dependency-name: actions/setup-python dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Manage FAIL_IF_UPDATED_SOURCES option * [MegaLinter] Apply linters fixes * Bump actions/checkout from 3.0.0 to 3.0.1 Bumps [actions/checkout](https://github.com/actions/checkout) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3.0.0...v3.0.1) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Fix git issue Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: nvuillam * QuickFix * Try fix Git CVE issue for own linting (#1415) * Try fix Git CVE issue * Try again fix git issue * Fix CI * Allow git generic safe directory As we are supposed to trust the machine and repo we use MegaLinter on * Dynamic add git safe.directory (#1417) * Dynamic add git safe.directory quick build * Test auto-update too * [automation] Auto-update linters version, help and documentation * Quickfix json schema FAIL_IF_UPDATED_SOURCES * Upgrade multiple dependencies (#1419) * Bump pascalgn/automerge-action from 0.14.3 to 0.15.2 Bumps [pascalgn/automerge-action](https://github.com/pascalgn/automerge-action) from 0.14.3 to 0.15.2. - [Release notes](https://github.com/pascalgn/automerge-action/releases) - [Commits](https://github.com/pascalgn/automerge-action/compare/v0.14.3...v0.15.2) --- updated-dependencies: - dependency-name: pascalgn/automerge-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump peter-evans/create-pull-request from 3 to 4.0.1 Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3 to 4.0.1. - [Release notes](https://github.com/peter-evans/create-pull-request/releases) - [Commits](https://github.com/peter-evans/create-pull-request/compare/v3...v4.0.1) --- updated-dependencies: - dependency-name: peter-evans/create-pull-request dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * Bump terraform-linters/tflint from v0.34.1 to v0.35.0 Bumps terraform-linters/tflint from v0.34.1 to v0.35.0. --- updated-dependencies: - dependency-name: terraform-linters/tflint dependency-type: direct:production ... Signed-off-by: dependabot[bot] * Bump actions/setup-node from 2.5.1 to 3.1.1 Bumps [actions/setup-node](https://github.com/actions/setup-node) from 2.5.1 to 3.1.1. - [Release notes](https://github.com/actions/setup-node/releases) - [Commits](https://github.com/actions/setup-node/compare/v2.5.1...v3.1.1) --- updated-dependencies: - dependency-name: actions/setup-node dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] * upgrade tflint Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [automation] Auto-update linters version, help and documentation (#1424) * [automation] Auto-update linters version, help and documentation (#1429) * [automation] Auto-update linters version, help and documentation * Update .trivyignore * [automation] Auto-update linters version, help and documentation (#1431) * [automation] Auto-update linters version, help and documentation (#1432) * Release MegaLinter v5.12.0 * [automation] Auto-update linters version, help and documentation (#1434) * Add gherkin-lint in dotnet flavor (#1436) * [automation] Auto-update linters version, help and documentation (#1437) * [automation] Auto-update linters version, help and documentation (#1442) * Define pre-commit hooks. (#1438) * Make minor grammatical corrections to README. * Define pre-commit hooks. The pre-commit framework allows users to run MegaLinter locally as a Git pre-commit hook. While it does have built-in support for Node.js hooks, it doesn't support monorepos, because the package.json must be in the root directory. While it does have built-in support for Docker hooks, the user experience of overriding arguments to mega-linter-runner is nicer than that for the Docker image. Hence, hand-roll system hooks instead, and leverage npx to execute (and, if necessary, download) mega-linter-runner. * [automation] Auto-update linters version, help and documentation (#1443) * [automation] Auto-update linters version, help and documentation (#1444) * [automation] Auto-update linters version, help and documentation (#1448) * [automation] Auto-update linters version, help and documentation (#1449) * [automation] Auto-update linters version, help and documentation (#1450) * [automation] Auto-update linters version, help and documentation * Upgrade clj-kondo * [automation] Auto-update linters version, help and documentation (#1451) * [automation] Auto-update linters version, help and documentation (#1452) * [automation] Auto-update linters version, help and documentation (#1453) * [automation] Auto-update linters version, help and documentation (#1454) * [automation] Auto-update linters version, help and documentation (#1455) * Typo in doc (#1457) * [automation] Auto-update linters version, help and documentation (#1456) * [automation] Auto-update linters version, help and documentation (#1459) * [automation] Auto-update linters version, help and documentation (#1463) * [automation] Auto-update linters version, help and documentation * Update GraphQL installation commands * [automation] Auto-update linters version, help and documentation (#1464) * Update sqlfluff descriptor to enable error count (#1462) * Adding regex to sqlfluff descriptor to enable proper error count * Fixing broken escape character * Update sql.megalinter-descriptor.yml * Add a second bad test case to verify count regex Co-authored-by: Nicolas Vuillamy * [automation] Auto-update linters version, help and documentation (#1465) * [automation] Auto-update linters version, help and documentation (#1466) * Pin ansible-lint to 6.0.2 (#1471) * Fix typo in bash-exec description * Pin ansible-lint to 6.0.2 (#1470) ansible-lint 6.1.0 adds a dependency on jsonschema==4.5.1, which conflicts with cfn-lint's pre-existing dependency on jsonschema~=3.0. Also remove extras community and yamllint since they are no longer provided by ansible-lint. * [automation] Auto-update linters version, help and documentation (#1467) * Add nitpick plugin (#1476) * Add nitpick plugin * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * Add users * Use go installer for editorconfig-checker (#1475) * Use go installer for editorconfig-checker * Fix install * remove @latest * go get * Use docker image * [automation] Auto-update linters version, help and documentation (#1477) * [automation] Auto-update linters version, help and documentation (#1478) * Release MegaLinter v5.13.0 * [automation] Auto-update linters version, help and documentation (#1481) * [automation] Auto-update linters version, help and documentation (#1483) * [automation] Auto-update linters version, help and documentation (#1486) * [automation] Auto-update linters version, help and documentation (#1487) * [automation] Auto-update linters version, help and documentation (#1488) * [automation] Auto-update linters version, help and documentation (#1490) * [automation] Auto-update linters version, help and documentation (#1491) * [automation] Auto-update linters version, help and documentation (#1492) * [automation] Auto-update linters version, help and documentation (#1495) * [automation] Auto-update linters version, help and documentation (#1496) * [automation] Auto-update linters version, help and documentation (#1498) * [automation] Auto-update linters version, help and documentation (#1501) * [automation] Auto-update linters version, help and documentation (#1503) * [automation] Auto-update linters version, help and documentation (#1504) * [automation] Auto-update linters version, help and documentation (#1505) * [automation] Auto-update linters version, help and documentation (#1509) * update toc (#1511) * [automation] Auto-update linters version, help and documentation (#1510) * [automation] Auto-update linters version, help and documentation * Update rstcheck help argument * [Docs] update urls about R lintr (#1512) * update urls about lintr * Build (updates must be performed only in YML descriptor, the rest is generated automatically) Co-authored-by: Nicolas Vuillamy * [automation] Auto-update linters version, help and documentation (#1518) * [automation] Auto-update linters version, help and documentation (#1519) * [automation] Auto-update linters version, help and documentation (#1520) * [automation] Auto-update linters version, help and documentation (#1521) * [automation] Auto-update linters version, help and documentation (#1522) * Local plugin support/documentation (#1508) * Local plugin support/documentation * Fixed linting error, added test * Added tests, refactored file access * Do not break README markdown indentation * jscpd * Fixed testing framework * linting Co-authored-by: Jack Heuberger Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1523) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * Release MegaLinter v5.14.0 * Build * Build doc * Linter version within docker variable STANDALONE_LINTER_VERSION * [automation] Auto-update linters version, help and documentation (#1524) * [automation] Auto-update linters version, help and documentation (#1528) * [automation] Auto-update linters version, help and documentation (#1530) * [automation] Auto-update linters version, help and documentation (#1532) * [automation] Auto-update linters version, help and documentation (#1533) * [automation] Auto-update linters version, help and documentation (#1536) * [automation] Auto-update linters version, help and documentation * Fix kotlin test cases * [automation] Auto-update linters version, help and documentation (#1537) * [automation] Auto-update linters version, help and documentation (#1543) * Ox branding (#1547) * Ox branding * resize * REsize * More updates about branding * archi slide * Update index * More variables in README to arrange ox website * Ready ? :) * Hide home * Fixes * cspell * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * QuickFix branding * QuickFix branding * Update logo size * Release MegaLinter v5.15.0 * Release MegaLinter v5.15.0 * [automation] Auto-update linters version, help and documentation (#1546) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1551) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes * Quick design update * QuickFix Co-authored-by: nvuillam * [automation] Auto-update linters version, help and documentation (#1552) * [automation] Auto-update linters version, help and documentation (#1554) * [automation] Auto-update linters version, help and documentation * Update deploy-DEV.yml * Update .trivyignore * Allow naming of `megalinter` docker container (#1558) * added support for named docker container * Update .cspell.json Co-authored-by: Nicolas Vuillamy * [automation] Auto-update linters version, help and documentation (#1559) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * Add last commit badges (#1565) * Add last commit badges * Add last commit badges * Remove print * Add last commit badges (#1566) * Add last commit badges * Add last commit badges * Remove print * Fix lint errors * WIP * Fix linter version error * [automation] Auto-update linters version, help and documentation (#1564) * [automation] Auto-update linters version, help and documentation * [MegaLinter] Apply linters fixes Co-authored-by: nvuillam * fixed a bug that caused `--containername` to not work (#1561) Co-authored-by: Nicolas Vuillamy * Release MegaLinter v5.16.0 * Build doc * ML fixes * Update CI config * mega-linter-runner installer and upgrader applicable to V6 * Parallelize test cases quick build * Disable gitleaks quick build * Remove parallel pytest + increase timeout * Fix linter test cases Co-authored-by: Barry Pollard Co-authored-by: nvuillam Co-authored-by: Sam Chorlton <10245822+schorlton@users.noreply.github.com> Co-authored-by: IM <91187869+1vm0@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Vitalii Tverdokhlib Co-authored-by: Edouard Choinière <27212526+echoix@users.noreply.github.com> Co-authored-by: Benoît Bleuzé Co-authored-by: Yann Jouanique Co-authored-by: Wes Dean Co-authored-by: Martijn Pieters Co-authored-by: Martijn Pieters Co-authored-by: David Bernard Co-authored-by: Andrew Sheridan <38504307+andrewasheridan@users.noreply.github.com> Co-authored-by: Kurt von Laven Co-authored-by: nv35 <76777923+nv35@users.noreply.github.com> Co-authored-by: Tom Stark <56162721+tdstark@users.noreply.github.com> Co-authored-by: eitsupi <50911393+eitsupi@users.noreply.github.com> Co-authored-by: jackheuberger <7830838+jackheuberger@users.noreply.github.com> Co-authored-by: Jack Heuberger Co-authored-by: Dmitri Trofimov <46350232+dmitri-trofimov@users.noreply.github.com> Co-authored-by: bdovaz Co-authored-by: bdovaz * Build doc * Update python base image * [MegaLinter] Apply linters fixes * --no-package-lock for npm install * Change docker image + use nodejs-current * Install node dependencies in a folder * PATH for node-deps * alpine 3.15 as 3.16 does not have php7 package + npm audit fix allowing to fail * trivy config * Try to fix with NODE_PATH * Fix NODE_PATH * Enable build & deploy dev workflow for v6_dev * trivy * Fix eslint-plugin-jsonc version retrieve * Upgrade trivy * Free disk space earlier in CI * Remove rstfmt from v6 * Change way to install R lintr * Do not use file logging in PARALLEL is true quick build * Update R linter * Update R lintr install * Fix gitleaks version * Changelog * Fix R descriptor * MegaLinter fixes * [MegaLinter] Apply linters fixes * Revert too many fixes * Disable autofix by semgrep * ci * R * Fix phplint install * Downgrade python to 3.10.4 * Fix R * Change ascii art * lint fixes * [MegaLinter] Apply linters fixes * Fix tflint * [MegaLinter] Apply linters fixes * Upgrade trivy action to use latest one * trivy config * Upgrade phplint * trivy * trivy * [MegaLinter] Apply linters fixes * Upgrade terrascan * trvy * [MegaLinter] Apply linters fixes * Fix PHPLint install * [MegaLinter] Apply linters fixes * Remove composer from path * Remove dart & scala flavors as they are not used * Finish to remove dart & scala flavors * New users + Build * [MegaLinter] Apply linters fixes * Upgrade v8r * Enable Gitleaks for own megalinting * Revert "Enable Gitleaks for own megalinting" This reverts commit a87d561999d59d90e302403fa0955042f13db0a8. * Disabl remark-lint for now as it is not capable to find presets package * Disable devskim errors + fix hadolint config * semgrep errors regex * Manage DISABLE_ERRORS_LINTERS * Build * Fix DISABLE_ERRORS_LINTERS * [MegaLinter] Apply linters fixes * trigger * Auto-update .gitignore * Switch from npm to yarn to manage mega-linter-runner * Propose to use Ox services when upgrading * Upgrade checkout action * Count legacy docker images * Fix docker count * Users page * Sarif reporter doc * Fix SARIF reporter when there are duplicate rule ids * Build & rename .python-lint into .pylintrc * trivy * False by default to ox testing question when installing / upgrading * Fix SARIF reporter * Fix SARIF reporter * Lint fixes * [MegaLinter] Apply linters fixes * Use yarn to install * Merge branch 'main' into v6_dev * Replace megalinter/megalinter by oxsecurity/megalinter * Pin actions/checkout to v3 * More replacements * Build * Build (doc) * Remove git sync for doc * Remove dart & scala flavors * Update OX Security invitation messages * [MegaLinter] Apply linters fixes * Fix runner linter errors * Update CI jobs for v6 * [MegaLinter] Apply linters fixes * change default release * Build * Fix output GHA * Fix dev workflow Co-authored-by: nvuillam Co-authored-by: Laurent Laville Co-authored-by: John Practicalli <250870+practicalli-john@users.noreply.github.com> Co-authored-by: Adam Ralph Co-authored-by: Inbar <5904674+InbarRose@users.noreply.github.com> Co-authored-by: Sam Chorlton <10245822+schorlton@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Barry Pollard Co-authored-by: IM <91187869+1vm0@users.noreply.github.com> Co-authored-by: Vitalii Tverdokhlib Co-authored-by: Edouard Choinière <27212526+echoix@users.noreply.github.com> Co-authored-by: Benoît Bleuzé Co-authored-by: Yann Jouanique Co-authored-by: Wes Dean Co-authored-by: Martijn Pieters Co-authored-by: Martijn Pieters Co-authored-by: David Bernard Co-authored-by: Andrew Sheridan <38504307+andrewasheridan@users.noreply.github.com> Co-authored-by: Kurt von Laven Co-authored-by: nv35 <76777923+nv35@users.noreply.github.com> Co-authored-by: Tom Stark <56162721+tdstark@users.noreply.github.com> Co-authored-by: eitsupi <50911393+eitsupi@users.noreply.github.com> Co-authored-by: jackheuberger <7830838+jackheuberger@users.noreply.github.com> Co-authored-by: Jack Heuberger Co-authored-by: Dmitri Trofimov <46350232+dmitri-trofimov@users.noreply.github.com> Co-authored-by: bdovaz Co-authored-by: bdovaz --- .automation/build.py | 410 +- .automation/format-tables.sh | 5 + .automation/generated/flavors-stats.json | 2 +- .automation/generated/linter-helps.json | 89 +- .automation/generated/linter-licenses.json | 12 + .../generated/linter-links-previews.json | 40 + .automation/generated/megalinter-users.json | 2186 ++++++--- .../test/credentials/bad/.gitleaks.toml | 178 + .automation/test/credentials/bad/config.py | 1 + .../test/credentials/good/.gitleaks.toml | 178 + .automation/test/credentials/good/config.py | 1 + .../example-with-http-python-bandit-image.sh | 66 + .../test/devskim/bad/package-lock.json | 138 + .automation/test/devskim/bad/package.json | 5 + .../test/devskim/good/package-lock.json | 141 + .automation/test/devskim/good/package.json | 5 + .automation/test/docker/bad/.dockerfilelintrc | 104 - .../test/docker/good/.dockerfilelintrc | 104 - .../ERROR-DOCKERFILE_DOCKERFILELINT.txt | 70 - .../SUCCESS-DOCKERFILE_DOCKERFILELINT.txt | 14 - .../example-with-http-python-bandit-image.sh | 66 + .automation/test/dustilock/bad/package.json | 11 + .../test/dustilock/bad/requirements.txt | 4 + .automation/test/dustilock/good/package.json | 5 + .../test/gitleaks/bad/gitleaks_bad_01.txt | 2 + .../test/gitleaks/bad/gitleaks_bad_02.txt | 3 + .../test/gitleaks/good/gitleaks_good_01.txt | 1 + .automation/test/golang/golang_good_01.go | 1 + .automation/test/java/java_good_1.java | 3 +- .automation/test/java/java_good_2.java | 2 + .automation/test/markdown/markdown_bad_1.md | 6 +- .../base-error.mega-linter.yml | 2 +- .../base.mega-linter.yml | 4 +- .../base2.mega-linter.yml | 2 +- .../test/php/reports/ERROR-PHP_BUILTIN.txt | 12 - .../test/php/reports/SUCCESS-PHP_BUILTIN.txt | 10 - .../test/php/reports/expected-PHP_BUILTIN.tap | 12 - .../test/pre-post-test/.mega-linter.yml | 2 +- .../test/repository_goodcheck/bad/README.md | 1 + .../repository_goodcheck/bad/goodcheck.yml | 17 + .../test/repository_goodcheck/good/README.md | 1 + .../repository_goodcheck/good/goodcheck.yml | 17 + .../test/repository_semgrep/bad/Dockerfile | 14 + .../test/repository_semgrep/bad/security.go | 39 + .../repository_semgrep/bad/simple_print.py | 4 + .../test/repository_semgrep/good/Dockerfile | 15 + .../repository_semgrep/good/simple_print.py | 2 + .../test/repository_syft}/package-lock.json | 14 +- .automation/test/repository_syft/package.json | 96 + .automation/test/repository_syft/setup.py | 27 + .../test/sample_project_sarif/.eslintrc.json | 13 + .../sample_project_sarif/gitleaks_bad_01.txt | 2 + .../sample_project_sarif/javascript_bad_1.js | 225 + .../sample_project_sarif/package-lock.json | 138 + .../test/sample_project_sarif/package.json | 5 + .../test/sample_project_sarif/python_bad_1.py | 4 + .../terraform_checkov_bad_1.tf | 3 + .../terraform_kics_bad_1.tf | 12 + .../CLOUDFORMATION_CFN_LINT.sarif | 141 + .../test/sarif_reports/JAVASCRIPT_ES.sarif | 53 + .../test/sarif_reports/JAVA_CHECKSTYLE.sarif | 25 + .../JSON_ESLINT_PLUGIN_JSONC.sarif | 134 + .../test/sarif_reports/JSX_ESLINT.sarif | 53 + .../test/sarif_reports/KOTLIN_KTLINT.sarif | 197 + .../test/sarif_reports/PYTHON_BANDIT.sarif | 435 ++ .../sarif_reports/REPOSITORY_GITLEAKS.sarif | 280 ++ .../test/sarif_reports/REPOSITORY_TRIVY.sarif | 0 .../sarif_reports/TERRAFORM_CHECKOV.sarif | 1 + .../test/sarif_reports/TSX_ESLINT.sarif | 53 + .../test/sarif_reports/TYPESCRIPT_ES.sarif | 53 + .../bad/terraform_bad_2.tf | 8 + .../good/terraform_good_2.tf | 17 + .automation/test/trivy/bad/package-lock.json | 138 + .automation/test/trivy/bad/package.json | 5 + .automation/test/trivy/good/package-lock.json | 141 + .automation/test/trivy/good/package.json | 5 + .automation/test/yaml_schema/good/action.yml | 2 +- .automation/upload-docker.sh | 28 +- .cspell.json | 85 +- .dockerfilelintrc | 4 - .github/linters/{.python-lint => .pylintrc} | 74 +- .github/linters/goodcheck.yml | 17 + .github/linters/java-pmd-ruleset.xml | 21 + .github/release-drafter.yml | 2 +- .github/workflows/auto-update-linters.yml | 8 +- .github/workflows/automerge-dependabot.yml | 2 +- .github/workflows/automerge.yml | 2 +- .github/workflows/build-deploy-docs.yml | 18 +- .github/workflows/deploy-ALPHA-flavors.yml | 14 +- .github/workflows/deploy-ALPHA.yml | 22 +- .github/workflows/deploy-DEV-linters.yml | 135 + .github/workflows/deploy-DEV.yml | 64 +- .github/workflows/deploy-PROD-flavors.yml | 16 +- .github/workflows/deploy-PROD-linters.yml | 161 + .github/workflows/deploy-PROD.yml | 26 +- .github/workflows/deploy-RELEASE-flavors.yml | 17 +- .github/workflows/deploy-RELEASE-linters.yml | 138 + .github/workflows/deploy-RELEASE.yml | 47 +- .github/workflows/mega-linter-for-runner.yml | 12 +- .github/workflows/mega-linter.yml | 12 +- .github/workflows/test-mega-linter-runner.yml | 4 +- .github/workflows/versioning.yml | 2 +- .gitignore | 2 +- .gitleaks.toml | 177 + .hadolint.yaml => .hadolint.yml | 3 +- .jscpd.json | 4 +- .mega-linter.yml | 20 +- .pre-commit-hooks.yaml | 8 +- .secretlintignore | 3 +- .trivyignore | 22 +- CHANGELOG.md | 79 + Dockerfile | 245 +- Dockerfile-quick | 2 +- README.md | 332 +- TEMPLATES/.dockerfilelintrc | 104 - TEMPLATES/{.python-lint => .pylintrc} | 79 +- TEMPLATES/goodcheck.yml | 18 + TEMPLATES/java-pmd-ruleset.xml | 21 + TEMPLATES/mega-linter.yml | 12 +- action.yml | 2 +- build.sh | 7 - docs/all_linters.md | 182 +- docs/all_users.md | 18 +- docs/configuration.md | 87 +- docs/descriptors/action.md | 9 +- docs/descriptors/action_actionlint.md | 36 +- docs/descriptors/ansible.md | 2 +- docs/descriptors/ansible_ansible_lint.md | 37 +- docs/descriptors/arm.md | 24 +- docs/descriptors/arm_arm_ttk.md | 109 +- docs/descriptors/bash.md | 9 +- docs/descriptors/bash_bash_exec.md | 62 +- docs/descriptors/bash_shellcheck.md | 90 +- docs/descriptors/bash_shfmt.md | 98 +- docs/descriptors/c.md | 2 +- docs/descriptors/c_cpplint.md | 39 +- docs/descriptors/clojure.md | 2 +- docs/descriptors/clojure_clj_kondo.md | 68 +- docs/descriptors/cloudformation.md | 8 +- docs/descriptors/cloudformation_cfn_lint.md | 88 +- docs/descriptors/coffee.md | 2 +- docs/descriptors/coffee_coffeelint.md | 50 +- docs/descriptors/copypaste.md | 2 +- docs/descriptors/copypaste_jscpd.md | 93 +- docs/descriptors/cpp.md | 2 +- docs/descriptors/cpp_cpplint.md | 39 +- docs/descriptors/csharp.md | 7 +- docs/descriptors/csharp_dotnet_format.md | 42 +- docs/descriptors/css.md | 2 +- docs/descriptors/css_scss_lint.md | 66 +- docs/descriptors/css_stylelint.md | 87 +- docs/descriptors/dart.md | 2 +- docs/descriptors/dart_dartanalyzer.md | 46 +- docs/descriptors/dockerfile.md | 9 +- docs/descriptors/dockerfile_dockerfilelint.md | 199 - docs/descriptors/dockerfile_hadolint.md | 74 +- docs/descriptors/editorconfig.md | 2 +- .../editorconfig_editorconfig_checker.md | 65 +- docs/descriptors/env.md | 2 +- docs/descriptors/env_dotenv_linter.md | 72 +- docs/descriptors/gherkin.md | 2 +- docs/descriptors/gherkin_gherkin_lint.md | 41 +- docs/descriptors/go.md | 2 +- docs/descriptors/go_golangci_lint.md | 55 +- docs/descriptors/go_revive.md | 18 +- docs/descriptors/graphql.md | 2 +- .../graphql_graphql_schema_linter.md | 65 +- docs/descriptors/groovy.md | 2 +- docs/descriptors/groovy_npm_groovy_lint.md | 95 +- docs/descriptors/html.md | 2 +- docs/descriptors/html_htmlhint.md | 262 +- docs/descriptors/java.md | 2 +- docs/descriptors/java_checkstyle.md | 53 +- docs/descriptors/java_pmd.md | 89 + docs/descriptors/javascript.md | 2 +- docs/descriptors/javascript_eslint.md | 61 +- docs/descriptors/javascript_prettier.md | 36 +- docs/descriptors/javascript_standard.md | 55 +- docs/descriptors/json.md | 2 +- docs/descriptors/json_eslint_plugin_jsonc.md | 45 +- docs/descriptors/json_jsonlint.md | 84 +- docs/descriptors/json_prettier.md | 62 +- docs/descriptors/json_v8r.md | 52 +- docs/descriptors/jsx.md | 2 +- docs/descriptors/jsx_eslint.md | 61 +- docs/descriptors/kotlin.md | 9 +- docs/descriptors/kotlin_ktlint.md | 70 +- docs/descriptors/kubernetes.md | 2 +- docs/descriptors/kubernetes_kubeconform.md | 37 +- docs/descriptors/kubernetes_kubeval.md | 61 +- docs/descriptors/latex.md | 2 +- docs/descriptors/latex_chktex.md | 377 +- docs/descriptors/lua.md | 2 +- docs/descriptors/lua_luacheck.md | 57 +- docs/descriptors/markdown.md | 2 +- .../markdown_markdown_link_check.md | 75 +- .../markdown_markdown_table_formatter.md | 40 +- docs/descriptors/markdown_markdownlint.md | 76 +- docs/descriptors/markdown_remark_lint.md | 38 +- docs/descriptors/openapi.md | 2 +- docs/descriptors/openapi_spectral.md | 92 +- docs/descriptors/perl.md | 2 +- docs/descriptors/perl_perlcritic.md | 37 +- docs/descriptors/php.md | 4 +- docs/descriptors/php_php.md | 32 - docs/descriptors/php_phpcs.md | 92 +- docs/descriptors/php_phplint.md | 21 +- docs/descriptors/php_phpstan.md | 76 +- docs/descriptors/php_psalm.md | 167 +- docs/descriptors/powershell.md | 4 +- docs/descriptors/powershell_powershell.md | 129 +- docs/descriptors/protobuf.md | 2 +- docs/descriptors/protobuf_protolint.md | 101 +- docs/descriptors/puppet.md | 2 +- docs/descriptors/puppet_puppet_lint.md | 41 +- docs/descriptors/python.md | 2 +- docs/descriptors/python_bandit.md | 22 +- docs/descriptors/python_black.md | 57 +- docs/descriptors/python_flake8.md | 59 +- docs/descriptors/python_isort.md | 72 +- docs/descriptors/python_mypy.md | 28 +- docs/descriptors/python_pylint.md | 51 +- docs/descriptors/r.md | 2 +- docs/descriptors/r_lintr.md | 92 +- docs/descriptors/raku.md | 2 +- docs/descriptors/raku_raku.md | 45 +- docs/descriptors/repository.md | 28 + docs/descriptors/repository_devskim.md | 89 + docs/descriptors/repository_dustilock.md | 80 + docs/descriptors/repository_git_diff.md | 124 + docs/descriptors/repository_gitleaks.md | 141 + docs/descriptors/repository_goodcheck.md | 96 + docs/descriptors/repository_secretlint.md | 130 + docs/descriptors/repository_semgrep.md | 100 + docs/descriptors/repository_syft.md | 74 + docs/descriptors/repository_trivy.md | 94 + docs/descriptors/rst.md | 3 +- docs/descriptors/rst_rst_lint.md | 36 +- docs/descriptors/rst_rstcheck.md | 38 +- docs/descriptors/rst_rstfmt.md | 24 +- docs/descriptors/ruby.md | 12 +- docs/descriptors/ruby_rubocop.md | 83 +- docs/descriptors/rust.md | 2 +- docs/descriptors/rust_clippy.md | 65 +- docs/descriptors/salesforce.md | 2 +- .../salesforce_sfdx_scanner_apex.md | 34 +- .../salesforce_sfdx_scanner_aura.md | 26 +- .../salesforce_sfdx_scanner_lwc.md | 14 +- docs/descriptors/scala.md | 4 +- docs/descriptors/scala_scalafix.md | 41 +- docs/descriptors/snakemake.md | 2 +- docs/descriptors/snakemake_snakefmt.md | 78 +- docs/descriptors/snakemake_snakemake.md | 77 +- docs/descriptors/spell.md | 5 +- docs/descriptors/spell_cspell.md | 87 +- docs/descriptors/spell_misspell.md | 65 +- docs/descriptors/sql.md | 2 +- docs/descriptors/sql_sql_lint.md | 64 +- docs/descriptors/sql_sqlfluff.md | 38 +- docs/descriptors/sql_tsqllint.md | 28 +- docs/descriptors/swift.md | 2 +- docs/descriptors/swift_swiftlint.md | 20 +- docs/descriptors/tekton.md | 2 +- docs/descriptors/tekton_tekton_lint.md | 67 +- docs/descriptors/terraform.md | 2 +- docs/descriptors/terraform_checkov.md | 15 +- docs/descriptors/terraform_kics.md | 13 +- docs/descriptors/terraform_terraform_fmt.md | 23 +- docs/descriptors/terraform_terragrunt.md | 43 +- docs/descriptors/terraform_terrascan.md | 71 +- docs/descriptors/terraform_tflint.md | 47 +- docs/descriptors/tsx.md | 2 +- docs/descriptors/tsx_eslint.md | 62 +- docs/descriptors/typescript.md | 2 +- docs/descriptors/typescript_eslint.md | 61 +- docs/descriptors/typescript_prettier.md | 36 +- docs/descriptors/typescript_standard.md | 55 +- docs/descriptors/vbdotnet.md | 25 +- docs/descriptors/vbdotnet_dotnet_format.md | 51 +- docs/descriptors/xml.md | 2 +- docs/descriptors/xml_xmllint.md | 70 +- docs/descriptors/yaml.md | 2 +- docs/descriptors/yaml_prettier.md | 62 +- docs/descriptors/yaml_v8r.md | 52 +- docs/descriptors/yaml_yamllint.md | 70 +- docs/flavors.md | 35 +- docs/flavors/ci_light.md | 60 +- docs/flavors/dart.md | 110 +- docs/flavors/documentation.md | 109 +- docs/flavors/dotnet.md | 125 +- docs/flavors/go.md | 113 +- docs/flavors/java.md | 113 +- docs/flavors/javascript.md | 127 +- docs/flavors/php.md | 118 +- docs/flavors/python.md | 125 +- docs/flavors/ruby.md | 111 +- docs/flavors/rust.md | 111 +- docs/flavors/salesforce.md | 115 +- docs/flavors/scala.md | 110 +- docs/flavors/security.md | 57 + docs/flavors/swift.md | 111 +- docs/flavors/terraform.md | 121 +- docs/index.md | 218 +- docs/installation.md | 2 +- docs/json-schemas/descriptor.html | 6 +- docs/licenses/cfn-lint.md | 14 + docs/licenses/clippy.md | 7 + docs/licenses/clj-kondo.md | 198 + docs/licenses/devskim.md | 21 + docs/licenses/dotnet-format.md | 23 + docs/licenses/dustilock.md | 201 + docs/licenses/gherkin-lint.md | 13 + docs/licenses/gitleaks.md | 21 + docs/licenses/goodcheck.md | 21 + docs/licenses/graphql-schema-linter.md | 21 + docs/licenses/hadolint.md | 674 +++ docs/mega-linter-vs-super-linter.md | 14 +- docs/reporters.md | 26 +- docs/reporters/GitHubStatusReporter.md | 2 +- docs/reporters/SarifReporter.md | 30 + docs/standalone-linters.md | 28 + docs/supported-linters.md | 214 +- entrypoint.sh | 67 +- flavors/ci_light/Dockerfile | 119 +- flavors/ci_light/action.yml | 2 +- flavors/ci_light/flavor.json | 10 +- flavors/dart/flavor.json | 50 - flavors/documentation/Dockerfile | 120 +- flavors/documentation/action.yml | 2 +- flavors/documentation/flavor.json | 15 +- flavors/dotnet/Dockerfile | 170 +- flavors/dotnet/action.yml | 2 +- flavors/dotnet/flavor.json | 19 +- flavors/go/Dockerfile | 119 +- flavors/go/action.yml | 2 +- flavors/go/flavor.json | 17 +- flavors/java/Dockerfile | 119 +- flavors/java/action.yml | 2 +- flavors/java/flavor.json | 17 +- flavors/javascript/Dockerfile | 120 +- flavors/javascript/action.yml | 2 +- flavors/javascript/flavor.json | 15 +- flavors/php/Dockerfile | 128 +- flavors/php/action.yml | 2 +- flavors/php/flavor.json | 16 +- flavors/python/Dockerfile | 121 +- flavors/python/action.yml | 2 +- flavors/python/flavor.json | 15 +- flavors/ruby/Dockerfile | 122 +- flavors/ruby/action.yml | 2 +- flavors/ruby/flavor.json | 16 +- flavors/rust/Dockerfile | 120 +- flavors/rust/action.yml | 2 +- flavors/rust/flavor.json | 15 +- flavors/salesforce/Dockerfile | 125 +- flavors/salesforce/action.yml | 2 +- flavors/salesforce/flavor.json | 15 +- flavors/scala/action.yml | 16 - flavors/scala/flavor.json | 51 - flavors/{scala => security}/Dockerfile | 230 +- flavors/{dart => security}/action.yml | 4 +- flavors/security/flavor.json | 26 + flavors/swift/Dockerfile | 120 +- flavors/swift/action.yml | 2 +- flavors/swift/flavor.json | 15 +- flavors/terraform/Dockerfile | 122 +- flavors/terraform/action.yml | 2 +- flavors/terraform/flavor.json | 15 +- linters/action_actionlint/Dockerfile | 177 + linters/ansible_ansible_lint/Dockerfile | 175 + linters/arm_arm_ttk/Dockerfile | 197 + linters/bash_exec/Dockerfile | 178 + linters/bash_shellcheck/Dockerfile | 179 + linters/bash_shfmt/Dockerfile | 178 + linters/c_cpplint/Dockerfile | 174 + linters/clojure_clj_kondo/Dockerfile | 175 + linters/cloudformation_cfn_lint/Dockerfile | 184 + linters/coffee_coffeelint/Dockerfile | 177 + linters/copypaste_jscpd/Dockerfile | 177 + linters/cpp_cpplint/Dockerfile | 174 + linters/csharp_dotnet_format/Dockerfile | 190 + linters/css_scss_lint/Dockerfile | 179 + linters/css_stylelint/Dockerfile | 180 + .../dart_dartanalyzer}/Dockerfile | 192 +- linters/dockerfile_hadolint/Dockerfile | 185 + .../Dockerfile | 177 + linters/env_dotenv_linter/Dockerfile | 175 + linters/gherkin_gherkin_lint/Dockerfile | 177 + linters/go_golangci_lint/Dockerfile | 178 + linters/go_revive/Dockerfile | 186 + .../graphql_graphql_schema_linter/Dockerfile | 177 + linters/groovy_npm_groovy_lint/Dockerfile | 192 + linters/html_htmlhint/Dockerfile | 177 + linters/java_checkstyle/Dockerfile | 196 + linters/javascript_es/Dockerfile | 204 + linters/javascript_prettier/Dockerfile | 177 + linters/javascript_standard/Dockerfile | 177 + linters/json_eslint_plugin_jsonc/Dockerfile | 193 + linters/json_jsonlint/Dockerfile | 177 + linters/json_prettier/Dockerfile | 177 + linters/json_v8r/Dockerfile | 177 + linters/jsx_eslint/Dockerfile | 194 + linters/kotlin_ktlint/Dockerfile | 189 + linters/kubernetes_kubeval/Dockerfile | 178 + linters/latex_chktex/Dockerfile | 176 + linters/lua_luacheck/Dockerfile | 189 + .../markdown_markdown_link_check/Dockerfile | 177 + .../Dockerfile | 177 + linters/markdown_markdownlint/Dockerfile | 177 + linters/markdown_remark_lint/Dockerfile | 178 + linters/openapi_spectral/Dockerfile | 177 + linters/perl_perlcritic/Dockerfile | 177 + linters/php_phpcs/Dockerfile | 211 + linters/php_phplint/Dockerfile | 213 + linters/php_phpstan/Dockerfile | 211 + linters/php_psalm/Dockerfile | 224 + linters/powershell_powershell/Dockerfile | 189 + linters/protobuf_protolint/Dockerfile | 175 + linters/puppet_puppet_lint/Dockerfile | 179 + linters/python_bandit/Dockerfile | 185 + linters/python_black/Dockerfile | 174 + linters/python_flake8/Dockerfile | 174 + linters/python_isort/Dockerfile | 175 + linters/python_mypy/Dockerfile | 174 + linters/python_pylint/Dockerfile | 174 + linters/r_lintr/Dockerfile | 180 + linters/raku_raku/Dockerfile | 182 + linters/repository_devskim/Dockerfile | 198 + linters/repository_dustilock/Dockerfile | 194 + linters/repository_git_diff/Dockerfile | 173 + linters/repository_gitleaks/Dockerfile | 185 + linters/repository_goodcheck/Dockerfile | 179 + linters/repository_secretlint/Dockerfile | 193 + linters/repository_semgrep/Dockerfile | 184 + linters/repository_syft/Dockerfile | 185 + linters/repository_trivy/Dockerfile | 188 + linters/rst_rst_lint/Dockerfile | 174 + linters/rst_rstcheck/Dockerfile | 174 + linters/rst_rstfmt/Dockerfile | 175 + linters/ruby_rubocop/Dockerfile | 183 + linters/rust_clippy/Dockerfile | 179 + .../salesforce_sfdx_scanner_apex/Dockerfile | 185 + .../salesforce_sfdx_scanner_aura/Dockerfile | 185 + .../salesforce_sfdx_scanner_lwc/Dockerfile | 185 + linters/scala_scalafix/Dockerfile | 181 + linters/snakemake_lint/Dockerfile | 174 + linters/snakemake_snakefmt/Dockerfile | 174 + linters/spell_cspell/Dockerfile | 177 + linters/spell_misspell/Dockerfile | 177 + linters/sql_sql_lint/Dockerfile | 177 + linters/sql_sqlfluff/Dockerfile | 174 + linters/sql_tsqllint/Dockerfile | 188 + linters/swift_swiftlint/Dockerfile | 175 + linters/tekton_tekton_lint/Dockerfile | 177 + linters/terraform_checkov/Dockerfile | 187 + linters/terraform_kics/Dockerfile | 178 + linters/terraform_terraform_fmt/Dockerfile | 175 + linters/terraform_terragrunt/Dockerfile | 175 + linters/terraform_terrascan/Dockerfile | 185 + linters/terraform_tflint/Dockerfile | 185 + linters/tsx_eslint/Dockerfile | 203 + linters/typescript_es/Dockerfile | 206 + linters/typescript_prettier/Dockerfile | 178 + linters/typescript_standard/Dockerfile | 180 + linters/vbdotnet_dotnet_format/Dockerfile | 190 + linters/xml_xmllint/Dockerfile | 177 + linters/yaml_prettier/Dockerfile | 177 + linters/yaml_v8r/Dockerfile | 177 + linters/yaml_yamllint/Dockerfile | 174 + mega-linter-runner/.mega-linter.yml | 4 +- mega-linter-runner/.trivyignore | 4 + mega-linter-runner/README.md | 214 +- .../generators/mega-linter/index.js | 70 +- .../mega-linter/templates/.gitlab-ci.yml | 6 +- .../mega-linter/templates/.mega-linter.yml | 2 +- .../mega-linter/templates/mega-linter.yml | 8 +- mega-linter-runner/lib/ascii.js | 27 + mega-linter-runner/lib/config.js | 20 + mega-linter-runner/lib/ox-setup.js | 43 + mega-linter-runner/lib/upgrade.js | 181 + mega-linter-runner/package.json | 3 + mega-linter-runner/test/ox-setup.test.js | 25 + mega-linter-runner/yarn.lock | 4005 +++++++++++++++++ megalinter/Linter.py | 125 +- megalinter/MegaLinter.py | 201 +- megalinter/__init__.py | 3 +- megalinter/alpaca.py | 60 +- megalinter/config.py | 6 + megalinter/constants.py | 16 +- .../action.megalinter-descriptor.yml | 3 + megalinter/descriptors/all_flavors.json | 309 +- .../ansible.megalinter-descriptor.yml | 1 + .../descriptors/arm.megalinter-descriptor.yml | 15 + .../bash.megalinter-descriptor.yml | 14 + .../clojure.megalinter-descriptor.yml | 1 + .../cloudformation.megalinter-descriptor.yml | 21 +- .../copypaste.megalinter-descriptor.yml | 6 +- .../descriptors/cpp.megalinter-descriptor.yml | 1 + .../credentials.megalinter-descriptor.yml | 29 - .../csharp.megalinter-descriptor.yml | 6 + .../descriptors/css.megalinter-descriptor.yml | 1 + .../dart.megalinter-descriptor.yml | 4 +- .../dockerfile.megalinter-descriptor.yml | 22 +- .../gherkin.megalinter-descriptor.yml | 1 + .../descriptors/git.megalinter-descriptor.yml | 26 - .../descriptors/go.megalinter-descriptor.yml | 4 + .../graphql.megalinter-descriptor.yml | 1 + .../groovy.megalinter-descriptor.yml | 6 + .../java.megalinter-descriptor.yml | 7 + .../javascript.megalinter-descriptor.yml | 7 + .../json.megalinter-descriptor.yml | 14 +- .../descriptors/jsx.megalinter-descriptor.yml | 7 + .../kotlin.megalinter-descriptor.yml | 6 + .../kubernetes.megalinter-descriptor.yml | 2 + .../descriptors/lua.megalinter-descriptor.yml | 3 + .../markdown.megalinter-descriptor.yml | 3 + .../descriptors/php.megalinter-descriptor.yml | 23 +- .../powershell.megalinter-descriptor.yml | 3 + .../protobuf.megalinter-descriptor.yml | 1 + .../python.megalinter-descriptor.yml | 13 +- .../descriptors/r.megalinter-descriptor.yml | 17 +- .../raku.megalinter-descriptor.yml | 2 +- .../repository.megalinter-descriptor.yml | 320 ++ .../descriptors/rst.megalinter-descriptor.yml | 22 +- .../ruby.megalinter-descriptor.yml | 6 - .../rust.megalinter-descriptor.yml | 1 + .../scala.megalinter-descriptor.yml | 6 +- .../megalinter-configuration.jsonschema.json | 1348 +++++- .../megalinter-descriptor.jsonschema.json | 44 +- .../snakemake.megalinter-descriptor.yml | 5 +- .../spell.megalinter-descriptor.yml | 3 + .../descriptors/sql.megalinter-descriptor.yml | 15 + .../tekton.megalinter-descriptor.yml | 1 + .../terraform.megalinter-descriptor.yml | 37 +- .../descriptors/tsx.megalinter-descriptor.yml | 8 + .../typescript.megalinter-descriptor.yml | 7 + .../vbdotnet.megalinter-descriptor.yml | 19 + .../yaml.megalinter-descriptor.yml | 4 +- megalinter/flavor_factory.py | 8 +- megalinter/linter_factory.py | 12 + megalinter/linters/CSpellLinter.py | 3 +- megalinter/linters/DustilockLinter.py | 105 + megalinter/linters/GitleaksLinter.py | 23 + .../linters/GroovyNpmGroovyLintLinter.py | 2 + megalinter/linters/JavaPmdLinter.py | 43 + megalinter/linters/RLinter.py | 5 +- megalinter/linters/SemgrepLinter.py | 58 + megalinter/linters/SyftLinter.py | 67 + megalinter/megalinter_server-py-unused | 90 + megalinter/reporters/ConsoleLinterReporter.py | 6 +- megalinter/reporters/ConsoleReporter.py | 4 +- megalinter/reporters/GithubStatusReporter.py | 10 +- megalinter/reporters/SarifReporter.py | 181 + megalinter/setup.py | 14 +- .../tests/test_megalinter/LinterTestRoot.py | 8 + .../tests/test_megalinter/filters_test.py | 5 +- .../test_megalinter/helpers/utilstest.py | 117 +- .../linters/dockerfile_dockerfilelint_test.py | 14 - .../kubernetes_kubeconform_test.py~HEAD | 14 + .../kubernetes_kubeconform_test.py~HEAD_0 | 14 + .../kubernetes_kubeconform_test.py~main | 14 + .../kubernetes_kubeconform_test.py~main_0 | 14 + ...p_php_test.py => php_phplint_test.py~HEAD} | 6 +- ...stfmt_test.py => php_phplint_test.py~main} | 8 +- .../linters/repository_devskim_test.py | 14 + .../linters/repository_dustilock_test.py | 14 + ...ff_test.py => repository_git_diff_test.py} | 6 +- .../linters/repository_gitleaks_test.py | 14 + .../linters/repository_goodcheck_test.py | 14 + ..._test.py => repository_secretlint_test.py} | 6 +- .../linters/repository_semgrep_test.py | 35 + .../linters/repository_syft_test.py | 14 + .../linters/repository_trivy_test.py | 14 + .../test_megalinter/mega_linter_1_test.py | 32 +- .../mega_linter_2_fixes_test.py | 10 +- .../mega_linter_3_sarif_test.py | 88 + megalinter/utils.py | 40 +- mkdocs.yml | 37 +- requirements.dev.txt | 2 + sh/megalinter_exec | 124 + sh/motd | 25 + trivy-secret.yaml | 2 + 582 files changed, 39137 insertions(+), 9974 deletions(-) create mode 100755 .automation/format-tables.sh create mode 100644 .automation/test/credentials/bad/.gitleaks.toml create mode 100644 .automation/test/credentials/bad/config.py create mode 100644 .automation/test/credentials/good/.gitleaks.toml create mode 100644 .automation/test/credentials/good/config.py create mode 100644 .automation/test/devskim/bad/example-with-http-python-bandit-image.sh create mode 100644 .automation/test/devskim/bad/package-lock.json create mode 100644 .automation/test/devskim/bad/package.json create mode 100644 .automation/test/devskim/good/package-lock.json create mode 100644 .automation/test/devskim/good/package.json delete mode 100644 .automation/test/docker/bad/.dockerfilelintrc delete mode 100644 .automation/test/docker/good/.dockerfilelintrc delete mode 100644 .automation/test/docker/reports/ERROR-DOCKERFILE_DOCKERFILELINT.txt delete mode 100644 .automation/test/docker/reports/SUCCESS-DOCKERFILE_DOCKERFILELINT.txt create mode 100644 .automation/test/dustilock/bad/example-with-http-python-bandit-image.sh create mode 100644 .automation/test/dustilock/bad/package.json create mode 100644 .automation/test/dustilock/bad/requirements.txt create mode 100644 .automation/test/dustilock/good/package.json create mode 100644 .automation/test/gitleaks/bad/gitleaks_bad_01.txt create mode 100644 .automation/test/gitleaks/bad/gitleaks_bad_02.txt create mode 100644 .automation/test/gitleaks/good/gitleaks_good_01.txt delete mode 100644 .automation/test/php/reports/ERROR-PHP_BUILTIN.txt delete mode 100644 .automation/test/php/reports/SUCCESS-PHP_BUILTIN.txt delete mode 100644 .automation/test/php/reports/expected-PHP_BUILTIN.tap create mode 100644 .automation/test/repository_goodcheck/bad/README.md create mode 100644 .automation/test/repository_goodcheck/bad/goodcheck.yml create mode 100644 .automation/test/repository_goodcheck/good/README.md create mode 100644 .automation/test/repository_goodcheck/good/goodcheck.yml create mode 100644 .automation/test/repository_semgrep/bad/Dockerfile create mode 100644 .automation/test/repository_semgrep/bad/security.go create mode 100644 .automation/test/repository_semgrep/bad/simple_print.py create mode 100644 .automation/test/repository_semgrep/good/Dockerfile create mode 100644 .automation/test/repository_semgrep/good/simple_print.py rename {mega-linter-runner => .automation/test/repository_syft}/package-lock.json (99%) create mode 100644 .automation/test/repository_syft/package.json create mode 100644 .automation/test/repository_syft/setup.py create mode 100644 .automation/test/sample_project_sarif/.eslintrc.json create mode 100644 .automation/test/sample_project_sarif/gitleaks_bad_01.txt create mode 100644 .automation/test/sample_project_sarif/javascript_bad_1.js create mode 100644 .automation/test/sample_project_sarif/package-lock.json create mode 100644 .automation/test/sample_project_sarif/package.json create mode 100644 .automation/test/sample_project_sarif/python_bad_1.py create mode 100644 .automation/test/sample_project_sarif/terraform_checkov_bad_1.tf create mode 100644 .automation/test/sample_project_sarif/terraform_kics_bad_1.tf create mode 100644 .automation/test/sarif_reports/CLOUDFORMATION_CFN_LINT.sarif create mode 100644 .automation/test/sarif_reports/JAVASCRIPT_ES.sarif create mode 100644 .automation/test/sarif_reports/JAVA_CHECKSTYLE.sarif create mode 100644 .automation/test/sarif_reports/JSON_ESLINT_PLUGIN_JSONC.sarif create mode 100644 .automation/test/sarif_reports/JSX_ESLINT.sarif create mode 100644 .automation/test/sarif_reports/KOTLIN_KTLINT.sarif create mode 100644 .automation/test/sarif_reports/PYTHON_BANDIT.sarif create mode 100644 .automation/test/sarif_reports/REPOSITORY_GITLEAKS.sarif create mode 100644 .automation/test/sarif_reports/REPOSITORY_TRIVY.sarif create mode 100644 .automation/test/sarif_reports/TERRAFORM_CHECKOV.sarif create mode 100644 .automation/test/sarif_reports/TSX_ESLINT.sarif create mode 100644 .automation/test/sarif_reports/TYPESCRIPT_ES.sarif create mode 100644 .automation/test/terraform_terrascan/bad/terraform_bad_2.tf create mode 100644 .automation/test/terraform_terrascan/good/terraform_good_2.tf create mode 100644 .automation/test/trivy/bad/package-lock.json create mode 100644 .automation/test/trivy/bad/package.json create mode 100644 .automation/test/trivy/good/package-lock.json create mode 100644 .automation/test/trivy/good/package.json delete mode 100644 .dockerfilelintrc rename .github/linters/{.python-lint => .pylintrc} (88%) create mode 100644 .github/linters/goodcheck.yml create mode 100644 .github/linters/java-pmd-ruleset.xml create mode 100644 .github/workflows/deploy-DEV-linters.yml create mode 100644 .github/workflows/deploy-PROD-linters.yml create mode 100644 .github/workflows/deploy-RELEASE-linters.yml create mode 100644 .gitleaks.toml rename .hadolint.yaml => .hadolint.yml (87%) delete mode 100644 TEMPLATES/.dockerfilelintrc rename TEMPLATES/{.python-lint => .pylintrc} (87%) create mode 100644 TEMPLATES/goodcheck.yml create mode 100644 TEMPLATES/java-pmd-ruleset.xml delete mode 100644 docs/descriptors/dockerfile_dockerfilelint.md create mode 100644 docs/descriptors/java_pmd.md create mode 100644 docs/descriptors/repository.md create mode 100644 docs/descriptors/repository_devskim.md create mode 100644 docs/descriptors/repository_dustilock.md create mode 100644 docs/descriptors/repository_git_diff.md create mode 100644 docs/descriptors/repository_gitleaks.md create mode 100644 docs/descriptors/repository_goodcheck.md create mode 100644 docs/descriptors/repository_secretlint.md create mode 100644 docs/descriptors/repository_semgrep.md create mode 100644 docs/descriptors/repository_syft.md create mode 100644 docs/descriptors/repository_trivy.md create mode 100644 docs/flavors/security.md create mode 100644 docs/licenses/cfn-lint.md create mode 100644 docs/licenses/clippy.md create mode 100644 docs/licenses/clj-kondo.md create mode 100644 docs/licenses/devskim.md create mode 100644 docs/licenses/dotnet-format.md create mode 100644 docs/licenses/dustilock.md create mode 100644 docs/licenses/gherkin-lint.md create mode 100644 docs/licenses/gitleaks.md create mode 100644 docs/licenses/goodcheck.md create mode 100644 docs/licenses/graphql-schema-linter.md create mode 100644 docs/licenses/hadolint.md create mode 100644 docs/reporters/SarifReporter.md create mode 100644 docs/standalone-linters.md delete mode 100644 flavors/dart/flavor.json delete mode 100644 flavors/scala/action.yml delete mode 100644 flavors/scala/flavor.json rename flavors/{scala => security}/Dockerfile (63%) rename flavors/{dart => security}/action.yml (65%) create mode 100644 flavors/security/flavor.json create mode 100644 linters/action_actionlint/Dockerfile create mode 100644 linters/ansible_ansible_lint/Dockerfile create mode 100644 linters/arm_arm_ttk/Dockerfile create mode 100644 linters/bash_exec/Dockerfile create mode 100644 linters/bash_shellcheck/Dockerfile create mode 100644 linters/bash_shfmt/Dockerfile create mode 100644 linters/c_cpplint/Dockerfile create mode 100644 linters/clojure_clj_kondo/Dockerfile create mode 100644 linters/cloudformation_cfn_lint/Dockerfile create mode 100644 linters/coffee_coffeelint/Dockerfile create mode 100644 linters/copypaste_jscpd/Dockerfile create mode 100644 linters/cpp_cpplint/Dockerfile create mode 100644 linters/csharp_dotnet_format/Dockerfile create mode 100644 linters/css_scss_lint/Dockerfile create mode 100644 linters/css_stylelint/Dockerfile rename {flavors/dart => linters/dart_dartanalyzer}/Dockerfile (51%) create mode 100644 linters/dockerfile_hadolint/Dockerfile create mode 100644 linters/editorconfig_editorconfig_checker/Dockerfile create mode 100644 linters/env_dotenv_linter/Dockerfile create mode 100644 linters/gherkin_gherkin_lint/Dockerfile create mode 100644 linters/go_golangci_lint/Dockerfile create mode 100644 linters/go_revive/Dockerfile create mode 100644 linters/graphql_graphql_schema_linter/Dockerfile create mode 100644 linters/groovy_npm_groovy_lint/Dockerfile create mode 100644 linters/html_htmlhint/Dockerfile create mode 100644 linters/java_checkstyle/Dockerfile create mode 100644 linters/javascript_es/Dockerfile create mode 100644 linters/javascript_prettier/Dockerfile create mode 100644 linters/javascript_standard/Dockerfile create mode 100644 linters/json_eslint_plugin_jsonc/Dockerfile create mode 100644 linters/json_jsonlint/Dockerfile create mode 100644 linters/json_prettier/Dockerfile create mode 100644 linters/json_v8r/Dockerfile create mode 100644 linters/jsx_eslint/Dockerfile create mode 100644 linters/kotlin_ktlint/Dockerfile create mode 100644 linters/kubernetes_kubeval/Dockerfile create mode 100644 linters/latex_chktex/Dockerfile create mode 100644 linters/lua_luacheck/Dockerfile create mode 100644 linters/markdown_markdown_link_check/Dockerfile create mode 100644 linters/markdown_markdown_table_formatter/Dockerfile create mode 100644 linters/markdown_markdownlint/Dockerfile create mode 100644 linters/markdown_remark_lint/Dockerfile create mode 100644 linters/openapi_spectral/Dockerfile create mode 100644 linters/perl_perlcritic/Dockerfile create mode 100644 linters/php_phpcs/Dockerfile create mode 100644 linters/php_phplint/Dockerfile create mode 100644 linters/php_phpstan/Dockerfile create mode 100644 linters/php_psalm/Dockerfile create mode 100644 linters/powershell_powershell/Dockerfile create mode 100644 linters/protobuf_protolint/Dockerfile create mode 100644 linters/puppet_puppet_lint/Dockerfile create mode 100644 linters/python_bandit/Dockerfile create mode 100644 linters/python_black/Dockerfile create mode 100644 linters/python_flake8/Dockerfile create mode 100644 linters/python_isort/Dockerfile create mode 100644 linters/python_mypy/Dockerfile create mode 100644 linters/python_pylint/Dockerfile create mode 100644 linters/r_lintr/Dockerfile create mode 100644 linters/raku_raku/Dockerfile create mode 100644 linters/repository_devskim/Dockerfile create mode 100644 linters/repository_dustilock/Dockerfile create mode 100644 linters/repository_git_diff/Dockerfile create mode 100644 linters/repository_gitleaks/Dockerfile create mode 100644 linters/repository_goodcheck/Dockerfile create mode 100644 linters/repository_secretlint/Dockerfile create mode 100644 linters/repository_semgrep/Dockerfile create mode 100644 linters/repository_syft/Dockerfile create mode 100644 linters/repository_trivy/Dockerfile create mode 100644 linters/rst_rst_lint/Dockerfile create mode 100644 linters/rst_rstcheck/Dockerfile create mode 100644 linters/rst_rstfmt/Dockerfile create mode 100644 linters/ruby_rubocop/Dockerfile create mode 100644 linters/rust_clippy/Dockerfile create mode 100644 linters/salesforce_sfdx_scanner_apex/Dockerfile create mode 100644 linters/salesforce_sfdx_scanner_aura/Dockerfile create mode 100644 linters/salesforce_sfdx_scanner_lwc/Dockerfile create mode 100644 linters/scala_scalafix/Dockerfile create mode 100644 linters/snakemake_lint/Dockerfile create mode 100644 linters/snakemake_snakefmt/Dockerfile create mode 100644 linters/spell_cspell/Dockerfile create mode 100644 linters/spell_misspell/Dockerfile create mode 100644 linters/sql_sql_lint/Dockerfile create mode 100644 linters/sql_sqlfluff/Dockerfile create mode 100644 linters/sql_tsqllint/Dockerfile create mode 100644 linters/swift_swiftlint/Dockerfile create mode 100644 linters/tekton_tekton_lint/Dockerfile create mode 100644 linters/terraform_checkov/Dockerfile create mode 100644 linters/terraform_kics/Dockerfile create mode 100644 linters/terraform_terraform_fmt/Dockerfile create mode 100644 linters/terraform_terragrunt/Dockerfile create mode 100644 linters/terraform_terrascan/Dockerfile create mode 100644 linters/terraform_tflint/Dockerfile create mode 100644 linters/tsx_eslint/Dockerfile create mode 100644 linters/typescript_es/Dockerfile create mode 100644 linters/typescript_prettier/Dockerfile create mode 100644 linters/typescript_standard/Dockerfile create mode 100644 linters/vbdotnet_dotnet_format/Dockerfile create mode 100644 linters/xml_xmllint/Dockerfile create mode 100644 linters/yaml_prettier/Dockerfile create mode 100644 linters/yaml_v8r/Dockerfile create mode 100644 linters/yaml_yamllint/Dockerfile create mode 100644 mega-linter-runner/.trivyignore create mode 100644 mega-linter-runner/lib/ascii.js create mode 100644 mega-linter-runner/lib/config.js create mode 100644 mega-linter-runner/lib/ox-setup.js create mode 100644 mega-linter-runner/test/ox-setup.test.js create mode 100644 mega-linter-runner/yarn.lock delete mode 100644 megalinter/descriptors/credentials.megalinter-descriptor.yml delete mode 100644 megalinter/descriptors/git.megalinter-descriptor.yml create mode 100644 megalinter/descriptors/repository.megalinter-descriptor.yml create mode 100644 megalinter/linters/DustilockLinter.py create mode 100644 megalinter/linters/GitleaksLinter.py create mode 100644 megalinter/linters/JavaPmdLinter.py create mode 100644 megalinter/linters/SemgrepLinter.py create mode 100644 megalinter/linters/SyftLinter.py create mode 100644 megalinter/megalinter_server-py-unused create mode 100644 megalinter/reporters/SarifReporter.py delete mode 100644 megalinter/tests/test_megalinter/linters/dockerfile_dockerfilelint_test.py create mode 100644 megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~HEAD create mode 100644 megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~HEAD_0 create mode 100644 megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~main create mode 100644 megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~main_0 rename megalinter/tests/test_megalinter/linters/{php_php_test.py => php_phplint_test.py~HEAD} (70%) rename megalinter/tests/test_megalinter/linters/{rst_rstfmt_test.py => php_phplint_test.py~main} (63%) create mode 100644 megalinter/tests/test_megalinter/linters/repository_devskim_test.py create mode 100644 megalinter/tests/test_megalinter/linters/repository_dustilock_test.py rename megalinter/tests/test_megalinter/linters/{git_git_diff_test.py => repository_git_diff_test.py} (67%) create mode 100644 megalinter/tests/test_megalinter/linters/repository_gitleaks_test.py create mode 100644 megalinter/tests/test_megalinter/linters/repository_goodcheck_test.py rename megalinter/tests/test_megalinter/linters/{credentials_secretlint_test.py => repository_secretlint_test.py} (66%) create mode 100644 megalinter/tests/test_megalinter/linters/repository_semgrep_test.py create mode 100644 megalinter/tests/test_megalinter/linters/repository_syft_test.py create mode 100644 megalinter/tests/test_megalinter/linters/repository_trivy_test.py create mode 100644 megalinter/tests/test_megalinter/mega_linter_3_sarif_test.py create mode 100644 sh/megalinter_exec create mode 100644 sh/motd create mode 100644 trivy-secret.yaml diff --git a/.automation/build.py b/.automation/build.py index 767a24dc072..279abedd604 100644 --- a/.automation/build.py +++ b/.automation/build.py @@ -20,13 +20,17 @@ import megalinter import requests import terminaltables +import webpreview import yaml from bs4 import BeautifulSoup from giturlparse import parse from megalinter.constants import ( + DEFAULT_RELEASE, + DEFAULT_REPORT_FOLDER_NAME, ML_DOC_URL, ML_DOCKER_IMAGE, ML_DOCKER_IMAGE_LEGACY, + ML_DOCKER_IMAGE_LEGACY_V5, ML_REPO, ML_REPO_URL, ) @@ -34,8 +38,8 @@ from requests.packages.urllib3.util.retry import Retry from webpreview import web_preview -UPDATE_DOC = "--doc" in sys.argv RELEASE = "--release" in sys.argv +UPDATE_DOC = "--doc" in sys.argv or RELEASE is True if RELEASE is True: RELEASE_TAG = sys.argv[sys.argv.index("--release") + 1] if "v" not in RELEASE_TAG: @@ -61,6 +65,7 @@ LINKS_PREVIEW_FILE = REPO_HOME + "/.automation/generated/linter-links-previews.json" DOCKER_STATS_FILE = REPO_HOME + "/.automation/generated/flavors-stats.json" FLAVORS_DIR = REPO_HOME + "/flavors" +LINTERS_DIR = REPO_HOME + "/linters" GLOBAL_FLAVORS_FILE = REPO_HOME + "/megalinter/descriptors/all_flavors.json" BASE_SHIELD_IMAGE_LINK = "https://img.shields.io/docker/image-size" @@ -97,7 +102,14 @@ def generate_all_flavors(): generate_flavor(flavor, flavor_info) update_mkdocs_and_workflow_yml_with_flavors() if UPDATE_DOC is True: - update_docker_pulls_counter() + try: + update_docker_pulls_counter() + except requests.exceptions.ConnectionError as e: + logging.warning( + "Connection error - Unable to update docker pull counters: " + str(e) + ) + except Exception as e: + logging.warning("Unable to update docker pull counters: " + str(e)) # Automatically generate Dockerfile , action.yml and upgrade all_flavors.json @@ -110,14 +122,17 @@ def generate_flavor(flavor, flavor_info): for descriptor_file in descriptor_files: with open(descriptor_file, "r", encoding="utf-8") as f: descriptor = yaml.load(f, Loader=yaml.FullLoader) - if match_flavor(descriptor, flavor) is True and "install" in descriptor: + if ( + match_flavor(descriptor, flavor, flavor_info) is True + and "install" in descriptor + ): descriptor_and_linters += [descriptor] flavor_descriptors += [descriptor["descriptor_id"]] # Get install instructions at linter level linters = megalinter.linter_factory.list_all_linters() requires_docker = False for linter in linters: - if match_flavor(vars(linter), flavor) is True: + if match_flavor(vars(linter), flavor, flavor_info) is True: descriptor_and_linters += [vars(linter)] flavor_linters += [linter.name] if linter.cli_docker_image is not None: @@ -183,7 +198,7 @@ def generate_flavor(flavor, flavor_info): if RELEASE is True: image_release = RELEASE_TAG else: - image_release = "v5" + image_release = DEFAULT_RELEASE flavor_x = f"[{flavor} flavor]" action_yml = f""" # Automatically {'@'}generated by build.py name: "MegaLinter" @@ -206,6 +221,19 @@ def generate_flavor(flavor, flavor_info): with open(flavor_action_yml, "w", encoding="utf-8") as file: file.write(action_yml) logging.info(f"Updated {flavor_action_yml}") + extra_lines = [ + "COPY entrypoint.sh /entrypoint.sh", + "RUN chmod +x entrypoint.sh", + 'ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]', + ] + build_dockerfile( + dockerfile, descriptor_and_linters, requires_docker, flavor, extra_lines + ) + + +def build_dockerfile( + dockerfile, descriptor_and_linters, requires_docker, flavor, extra_lines +): # Gather all dockerfile commands docker_from = [] docker_arg = [] @@ -232,6 +260,12 @@ def generate_flavor(flavor, flavor_info): docker_from += [dockerfile_item] elif dockerfile_item.startswith("ARG"): docker_arg += [dockerfile_item] + elif dockerfile_item in docker_other: + dockerfile_item = ( + "# Next line commented because already managed by another linter\n" + "# " + "\n# ".join(dockerfile_item.splitlines()) + ) + docker_other += [dockerfile_item] else: docker_other += [dockerfile_item] docker_other += [""] @@ -247,10 +281,26 @@ def generate_flavor(flavor, flavor_info): # Collect ruby packages if "gem" in item["install"]: gem_packages += item["install"]["gem"] + # Add node install if node packages are here + if len(npm_packages) > 0: + apk_packages += ["npm", "nodejs-current", "yarn"] + # Add ruby apk packages if gem packages are here + if len(gem_packages) > 0: + apk_packages += ["ruby", "ruby-dev", "ruby-bundler", "ruby-rdoc"] # Replace between tags in Dockerfile # Commands - replace_in_file(dockerfile, "#FROM__START", "#FROM__END", "\n".join(docker_from)) - replace_in_file(dockerfile, "#ARG__START", "#ARG__END", "\n".join(docker_arg)) + replace_in_file( + dockerfile, + "#FROM__START", + "#FROM__END", + "\n".join(list(dict.fromkeys(docker_from))), + ) + replace_in_file( + dockerfile, + "#ARG__START", + "#ARG__END", + "\n".join(list(dict.fromkeys(docker_arg))), + ) replace_in_file( dockerfile, "#OTHER__START", @@ -269,8 +319,12 @@ def generate_flavor(flavor, flavor_info): npm_install_command = "" if len(npm_packages) > 0: npm_install_command = ( - "RUN npm install --no-cache --ignore-scripts \\\n " + "WORKDIR /node-deps\n" + + "RUN npm install --ignore-scripts \\\n " + " \\\n ".join(list(dict.fromkeys(npm_packages))) + + " && \\\n" + + " npm audit fix --audit-level=critical || true\n" + + "WORKDIR /\n" ) replace_in_file(dockerfile, "#NPM__START", "#NPM__END", npm_install_command) # Python pip packages @@ -294,9 +348,16 @@ def generate_flavor(flavor, flavor_info): replace_in_file(dockerfile, "#GEM__START", "#GEM__END", gem_install_command) flavor_env = f"ENV MEGALINTER_FLAVOR={flavor}" replace_in_file(dockerfile, "#FLAVOR__START", "#FLAVOR__END", flavor_env) + replace_in_file( + dockerfile, + "#EXTRA_DOCKERFILE_LINES__START", + "#EXTRA_DOCKERFILE_LINES__END", + "\n".join(extra_lines), + ) -def match_flavor(item, flavor): +def match_flavor(item, flavor, flavor_info): + is_strict = "strict" in flavor_info and flavor_info["strict"] is True if "disabled" in item and item["disabled"] is True: return if ( @@ -310,11 +371,117 @@ def match_flavor(item, flavor): if flavor in item["descriptor_flavors"] or ( "all_flavors" in item["descriptor_flavors"] and not flavor.endswith("_light") + and not is_strict ): return True return False +# Automatically generate Dockerfile for standalone linters +def generate_linter_dockerfiles(): + # Browse descriptors + linters_md = "# Standalone linter docker images\n\n" + linters_md += "| Linter key | Docker image | Size |\n" + linters_md += "| :----------| :----------- | :--: |\n" + descriptor_files = megalinter.linter_factory.list_descriptor_files() + gha_workflow_yml = [" linter:", " ["] + for descriptor_file in descriptor_files: + descriptor_items = [] + with open(descriptor_file, "r", encoding="utf-8") as f: + descriptor = yaml.load(f, Loader=yaml.FullLoader) + if "install" in descriptor: + descriptor_items += [descriptor] + descriptor_linters = megalinter.linter_factory.build_descriptor_linters( + descriptor_file, None + ) + # Browse descriptor linters + for linter in descriptor_linters: + # Do not build standalone linter if it does not manage SARIF + if linter.can_output_sarif is False: + continue + # Unique linter dockerfile + linter_lower_name = linter.name.lower() + dockerfile = f"{LINTERS_DIR}/{linter_lower_name}/Dockerfile" + if not os.path.isdir(os.path.dirname(dockerfile)): + os.makedirs(os.path.dirname(dockerfile), exist_ok=True) + requires_docker = False + if linter.cli_docker_image is not None: + requires_docker = True + descriptor_and_linter = descriptor_items + [vars(linter)] + copyfile(f"{REPO_HOME}/Dockerfile", dockerfile) + extra_lines = [ + f"ENV ENABLE_LINTERS={linter.name} \\", + " FLAVOR_SUGGESTIONS=false \\", + f" SINGLE_LINTER={linter.name} \\", + " PRINT_ALPACA=false \\", + " LOG_FILE=none \\", + " SARIF_REPORTER=true \\", + " TEXT_REPORTER=false \\", + " UPDATED_SOURCES_REPORTER=false \\", + " GITHUB_STATUS_REPORTER=false \\", + " GITHUB_COMMENT_REPORTER=false \\", + " EMAIL_REPORTER=false \\", + " FILEIO_REPORTER=false \\", + " CONFIG_REPORTER=false", + "", + # "EXPOSE 80", + "RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh", + "EXPOSE 22", + "COPY entrypoint.sh /entrypoint.sh", + "COPY sh /usr/bin/megalinter-sh", + "COPY sh/megalinter_exec /usr/bin/megalinter_exec", + "COPY sh/motd /etc/motd", + 'RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \\; && \\', + " chmod +x entrypoint.sh && \\", + " chmod +x /usr/bin/megalinter_exec && \\", + " echo \"alias megalinter='python -m megalinter.run'\" >> ~/.bashrc && source ~/.bashrc && \\", + " echo \"alias megalinter_exec='/usr/bin/megalinter_exec'\" >> ~/.bashrc && source ~/.bashrc", + 'RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \\', + " echo $STANDALONE_LINTER_VERSION", + # " echo $STANDALONE_LINTER_VERSION >> ~/.bashrc && source ~/.bashrc", + 'ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]', + ] + build_dockerfile( + dockerfile, descriptor_and_linter, requires_docker, "none", extra_lines + ) + gha_workflow_yml += [f' "{linter_lower_name}",'] + docker_image = ( + f"{ML_DOCKER_IMAGE}-only-{linter_lower_name}:{DEFAULT_RELEASE}" + ) + docker_image_badge = ( + f"![Docker Image Size (tag)]({BASE_SHIELD_IMAGE_LINK}/" + f"{ML_DOCKER_IMAGE}-only-{linter_lower_name}/{DEFAULT_RELEASE})" + ) + linters_md += ( + f"| {linter.name} | {docker_image} | {docker_image_badge} |\n" + ) + + # Update github action workflow + gha_workflow_yml += [" ]"] + replace_in_file( + f"{REPO_HOME}/.github/workflows/deploy-DEV-linters.yml", + "# linters-start", + "# linters-end", + "\n".join(gha_workflow_yml), + ) + replace_in_file( + f"{REPO_HOME}/.github/workflows/deploy-PROD-linters.yml", + "# linters-start", + "# linters-end", + "\n".join(gha_workflow_yml), + ) + replace_in_file( + f"{REPO_HOME}/.github/workflows/deploy-RELEASE-linters.yml", + "# linters-start", + "# linters-end", + "\n".join(gha_workflow_yml), + ) + # Write MD file + file = open(f"{REPO_HOME}/docs/standalone-linters.md", "w", encoding="utf-8") + file.write(linters_md + "\n") + file.close() + + # Automatically generate a test class for each linter class # This could be done dynamically at runtime, but having a physical class is easier for developers in IDEs def generate_linter_test_classes(): @@ -337,14 +504,19 @@ class {lang_lower}_{linter_name_lower}_test(TestCase, LinterTestRoot): descriptor_id = "{linter.descriptor_id}" linter_name = "{linter.linter_name}" """ - file = open( - f"{REPO_HOME}/megalinter/tests/test_megalinter/linters/{lang_lower}_{linter_name_lower}_test.py", - "w", - encoding="utf-8", + test_class_file_name = ( + f"{REPO_HOME}/megalinter/tests/test_megalinter/" + + f"linters/{lang_lower}_{linter_name_lower}_test.py" ) - file.write(test_class_code) - file.close() - logging.info("Updated " + file.name) + if not os.path.isfile(test_class_file_name): + file = open( + test_class_file_name, + "w", + encoding="utf-8", + ) + file.write(test_class_code) + file.close() + logging.info("Updated " + file.name) def list_descriptors_for_build(): @@ -539,11 +711,11 @@ def generate_descriptor_documentation(descriptor): def generate_flavor_documentation(flavor_id, flavor, linters_tables_md): - flavor_github_action = f"{ML_REPO}/flavors/{flavor_id}@v5" - flavor_docker_image = f"{ML_DOCKER_IMAGE}-{flavor_id}:v5" + flavor_github_action = f"{ML_REPO}/flavors/{flavor_id}@{DEFAULT_RELEASE}" + flavor_docker_image = f"{ML_DOCKER_IMAGE}-{flavor_id}:{DEFAULT_RELEASE}" docker_image_badge = ( f"![Docker Image Size (tag)]({BASE_SHIELD_IMAGE_LINK}/" - f"{ML_DOCKER_IMAGE}-{flavor_id}/v5)" + f"{ML_DOCKER_IMAGE}-{flavor_id}/{DEFAULT_RELEASE})" ) docker_pulls_badge = ( f"![Docker Pulls]({BASE_SHIELD_COUNT_LINK}/" f"{ML_DOCKER_IMAGE}-{flavor_id})" @@ -613,8 +785,8 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): linters_tables_md += [ f"### {type_label}", "", - f"| | {col_header} | Linter | Configuration key | Format/Fix | Status |", - "| :---: | ----------------- | -------------- | ------------ | :-----: | :-----: |", + f"| | {col_header} | Linter | Configuration key | Additional |", + "| :---: | ----------------- | -------------- | ------------ | :-----: |", ] descriptor_linters = linters_by_type[type1] prev_lang = "" @@ -649,17 +821,31 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): else "" ) prev_lang = linter.descriptor_id - fix_col = "" if linter.cli_lint_fix_arg_name is None else ":heavy_check_mark:" + # Build extra badges + md_extras = [] + repo = get_github_repo(linter) + if repo is not None: + md_extras += [ + f"[![GitHub stars](https://img.shields.io/github/stars/{repo}?cacheSeconds=3600)]" + f"(https://github.com/{repo})" + ] + if hasattr(linter, "is_formatter") and linter.is_formatter is True: + md_extras += ["![formatter](https://shields.io/badge/-format-yellow)"] + elif linter.cli_lint_fix_arg_name is not None: + md_extras += ["![autofix](https://shields.io/badge/-autofix-green)"] + if hasattr(linter, "can_output_sarif") and linter.can_output_sarif is True: + md_extras += ["![sarif](https://shields.io/badge/-SARIF-orange)"] + md_extra = " ".join(md_extras) + # Build doc URL linter_doc_url = ( f"{DOCS_URL_DESCRIPTORS_ROOT}/{lang_lower}_{linter_name_lower}.md" ) - badge = get_repository_badge_url(linter) + # Build md table line linters_tables_md += [ f"| {icon_html} | {descriptor_id_cell} | " f"[{linter.linter_name}]({doc_url(linter_doc_url)})" f"| [{linter.name}]({doc_url(linter_doc_url)})" - f"| {fix_col}" - f"| {badge} |" + f"| {md_extra} |" ] # Build individual linter doc @@ -1178,7 +1364,7 @@ def process_type(linters_by_type, type1, type_label, linters_tables_md): + os.path.sep + linter.test_folder + os.path.sep - + "reports" + + DEFAULT_REPORT_FOLDER_NAME ) success_log_file_example = ( test_report_folder + os.path.sep + f"SUCCESS-{linter.name}.txt" @@ -1231,9 +1417,7 @@ def build_flavors_md_table(filter_linter_name=None, replace_link=False): + len(linters_by_type["tooling_format"]) + +len(linters_by_type["other"]) ) - docker_image_badge = ( - f"![Docker Image Size (tag)]({BASE_SHIELD_IMAGE_LINK}/{ML_DOCKER_IMAGE}/v5)" - ) + docker_image_badge = f"![Docker Image Size (tag)]({BASE_SHIELD_IMAGE_LINK}/{ML_DOCKER_IMAGE}/{DEFAULT_RELEASE})" docker_pulls_badge = ( f"![Docker Pulls]({BASE_SHIELD_COUNT_LINK}/" f"{ML_DOCKER_IMAGE})" ) @@ -1260,7 +1444,7 @@ def build_flavors_md_table(filter_linter_name=None, replace_link=False): flavor_doc_url = f"{DOCS_URL_FLAVORS_ROOT}/{flavor_id}.md" docker_image_badge = ( f"![Docker Image Size (tag)]({BASE_SHIELD_IMAGE_LINK}/" - f"{ML_DOCKER_IMAGE}-{flavor_id}/v5)" + f"{ML_DOCKER_IMAGE}-{flavor_id}/{DEFAULT_RELEASE})" ) docker_pulls_badge = ( f"![Docker Pulls]({BASE_SHIELD_COUNT_LINK}/" @@ -1323,14 +1507,23 @@ def update_docker_pulls_counter(): legacy_docker_image_url = ( f"https://hub.docker.com/v2/repositories/{ML_DOCKER_IMAGE_LEGACY}" ) + legacy_v5_docker_image_url = ( + f"https://hub.docker.com/v2/repositories/{ML_DOCKER_IMAGE_LEGACY_V5}" + ) else: docker_image_url = ( f"https://hub.docker.com/v2/repositories/{ML_DOCKER_IMAGE}-{flavor_id}" ) legacy_docker_image_url = f"https://hub.docker.com/v2/repositories/{ML_DOCKER_IMAGE_LEGACY}-{flavor_id}" + legacy_v5_docker_image_url = ( + "https://hub.docker.com/v2/repositories/" + + f"{ML_DOCKER_IMAGE_LEGACY_V5}-{flavor_id}" + ) + flavor_count_1 = perform_count_request(docker_image_url) flavor_count_2 = perform_count_request(legacy_docker_image_url) - flavor_count = flavor_count_1 + flavor_count_2 + flavor_count_3 = perform_count_request(legacy_v5_docker_image_url) + flavor_count = flavor_count_1 + flavor_count_2 + flavor_count_3 logging.info(f"- docker pulls for {flavor_id}: {flavor_count}") total_count = total_count + flavor_count flavor_stats = list(docker_stats.get(flavor_id, [])) @@ -1589,7 +1782,7 @@ def replace_in_file(file_path, start, end, content, add_new_line=True): # Write the file out again with open(file_path, "w", encoding="utf-8") as file: file.write(file_content) - logging.info("Updated " + file.name) + logging.info("Updated " + file.name + " between " + start + " and " + end) def add_in_config_schema_file(variables): @@ -1660,7 +1853,7 @@ def move_to_file(file_path, start, end, target_file, keep_in_source=False): # Write the file out again with open(file_path, "w", encoding="utf-8") as file: file.write(file_content) - logging.info("Updated " + file.name) + logging.info("Updated " + file.name + " between " + start + " and " + end) bracket_content = ( bracket_content.replace("####", "#THREE#") .replace("###", "#TWO#") @@ -1950,16 +2143,23 @@ def collect_linter_previews(): logging.info( f"Collecting link preview info for {linter.linter_name} at {linter.linter_url}" ) - title, description, image = web_preview( - linter.linter_url, parser="html.parser", timeout=1000 - ) - item = { - "title": megalinter.utils.decode_utf8(title), - "description": megalinter.utils.decode_utf8(description), - "image": image, - } - data[linter.linter_name] = item - updated = True + title = None + try: + title, description, image = web_preview( + linter.linter_url, parser="html.parser", timeout=1000 + ) + except webpreview.excepts.URLUnreachable as e: + logging.error("URLUnreachable: " + str(e)) + except Exception as e: + logging.error(str(e)) + if title is not None: + item = { + "title": megalinter.utils.decode_utf8(title), + "description": megalinter.utils.decode_utf8(description), + "image": image, + } + data[linter.linter_name] = item + updated = True # Update file if updated is True: with open(LINKS_PREVIEW_FILE, "w", encoding="utf-8") as outfile: @@ -1986,10 +2186,19 @@ def generate_documentation_all_linters(): duplicate.descriptor_id_list.sort() linters[index] = duplicate linters.sort(key=lambda x: x.linter_name) - table_header = ["Linter", "Version", "License", "Descriptors", "Status", "URL"] + table_header = [ + "Linter", + "Version", + "License", + "Popularity", + "Descriptors", + "Status", + "URL", + ] md_table_lines = [] table_data = [table_header] hearth_linters_md = [] + leave = False for linter in linters: status = "Not submitted" md_status = ":white_circle:" @@ -2047,11 +2256,8 @@ def generate_documentation_all_linters(): md_license = "" linter_license_md_file = None # get license from github api - if ( - hasattr(linter, "linter_repo") - and linter.linter_repo is not None - and linter.linter_repo.startswith("https://github.com") - ): + repo = get_github_repo(linter) + if repo is not None: repo = linter.linter_repo.split("https://github.com/", 1)[1] api_github_url = f"https://api.github.com/repos/{repo}" api_github_headers = {"content-type": "application/json"} @@ -2059,8 +2265,21 @@ def generate_documentation_all_linters(): github_token = os.environ["GITHUB_TOKEN"] api_github_headers["authorization"] = f"Bearer {github_token}" logging.info(f"Getting license info for {api_github_url}") - session = requests_retry_session() - r = session.get(api_github_url, headers=api_github_headers) + try: + session = requests_retry_session() + r = session.get(api_github_url, headers=api_github_headers) + except requests.exceptions.ConnectionError as e: + logging.warning( + "Connection error - Unable to get info from github api: " + + str(e) + ) + leave = True + break + except Exception as e: + logging.warning("Unable to update docker pull counters: " + str(e)) + leave = True + break + if r is not None: # Update license key for licenses file resp = r.json() @@ -2106,7 +2325,7 @@ def generate_documentation_all_linters(): # get license from descriptor if ( - license == "" + (license is None or license == "" or license == "Other") and hasattr(linter, "linter_spdx_license") and linter.linter_spdx_license is not None ): @@ -2124,11 +2343,20 @@ def generate_documentation_all_linters(): # Update licenses file with open(LICENSES_FILE, "w", encoding="utf-8") as outfile: json.dump(linter_licenses, outfile, indent=4, sort_keys=True) + # popularity + md_popularity = "" + repo = get_github_repo(linter) + if repo is not None: + md_popularity = ( + f"[![GitHub stars](https://img.shields.io/github/stars/{repo}?cacheSeconds=3600)]" + f"(https://github.com/{repo}){{target=_blank}}" + ) # line table_line = [ linter.linter_name, linter_version, license, + "N/A", ", ".join(linter.descriptor_id_list), status, url, @@ -2144,12 +2372,17 @@ def generate_documentation_all_linters(): md_linter_name, linter_version, md_license, + md_popularity, "
".join(linter_doc_links), md_status, md_url, ] md_table_lines += [md_table_line] + if leave is True: + logging.warning("Error during process: Do not regenerate list of linters") + return + # Write referring linters to README hearth_linters_md_str = "\n".join(hearth_linters_md) replace_in_file( @@ -2177,10 +2410,10 @@ def generate_documentation_all_linters(): outfile.write("\n\n") outfile.write("# References\n\n") outfile.write( - "| Linter | Version | License | Descriptors | Reference status | URL |\n" + "| Linter | Version | License | Popularity | Descriptors | Ref | URL |\n" ) outfile.write( - "| :---- | :-----: | :-----: | :--------- | :--------------: | :-: |\n" + "| :---- | :-----: | :-----: | :-----: | :--------- | :--------------: | :-: |\n" ) for md_table_line in md_table_lines: outfile.write("| %s |\n" % " | ".join(md_table_line)) @@ -2191,7 +2424,15 @@ def generate_documentation_all_users(): with open(USERS_FILE, "r", encoding="utf-8") as json_file: megalinter_users = json.load(json_file) repositories = megalinter_users["repositories"] - linter_doc_md = ["# They use MegaLinter", ""] + linter_doc_md = [ + "# They use MegaLinter", + "", + "Here is a non-exhaustive list of open-source projects that use Megalinter", + "", + "According to posted issues, there are many more private and self-hosted " + "repos using MegaLinter but as we don't track them I can't provide a list :)", + "", + ] for repo in repositories: if "info" in repo: repo_full = repo["info"]["full_name"] @@ -2294,6 +2535,17 @@ def refresh_users_info(): outfile.write("\n") +def get_github_repo(linter): + if ( + hasattr(linter, "linter_repo") + and linter.linter_repo is not None + and linter.linter_repo.startswith("https://github.com") + ): + repo = linter.linter_repo.split("https://github.com/", 1)[1] + return repo + return None + + def manage_output_variables(): if os.environ.get("UPGRADE_LINTERS_VERSION", "") == "true": updated_files = megalinter.utils.list_updated_files("..") @@ -2307,11 +2559,35 @@ def manage_output_variables(): print("::set-output name=has_updated_versions::1") +def reformat_markdown_tables(): + logging.info("Formatting markdown tables...") + # Call markdown-table-formatter with the list of files + format_md_tables_command = ["bash", "format-tables.sh"] + logging.info("Running command: " + str(format_md_tables_command)) + process = subprocess.run( + format_md_tables_command, + stdout=subprocess.PIPE, + universal_newlines=True, + cwd=os.getcwd() + "/.automation", + shell=True, + ) + print(process.stdout) + print(process.stderr) + + def generate_version(): # npm version + logging.info("Updating npm package version...") cwd_to_use = os.getcwd() + "/mega-linter-runner" process = subprocess.run( - ["npm", "version", "--newversion", RELEASE_TAG], + [ + "npm", + "version", + "--newversion", + RELEASE_TAG, + "-no-git-tag-version", + "--no-commit-hooks", + ], stdout=subprocess.PIPE, universal_newlines=True, cwd=cwd_to_use, @@ -2319,6 +2595,26 @@ def generate_version(): ) print(process.stdout) print(process.stderr) + # Update changelog + changelog_file = f"{REPO_HOME}/CHANGELOG.md" + + with open(changelog_file, "r", encoding="utf-8") as md_file: + changelog_content = md_file.read() + changelog_content = changelog_content.replace("", "") + new_release_lines = [ + "," "", + "", + "- Linter versions upgrades", + "", + "", + f"## [{RELEASE_TAG}] - {datetime.today().strftime('%Y-%m-%d')}", + ] + changelog_content = changelog_content.replace( + "", "\n".join(new_release_lines) + ) + with open(changelog_file, "w", encoding="utf-8") as file: + file.write(changelog_content) + # git add , commit & tag repo = git.Repo(os.getcwd()) repo.git.add(update=True) @@ -2346,6 +2642,7 @@ def generate_version(): generate_json_schema_enums() validate_descriptors() generate_all_flavors() + generate_linter_dockerfiles() generate_linter_test_classes() if UPDATE_DOC is True: refresh_users_info() @@ -2355,5 +2652,6 @@ def generate_version(): generate_mkdocs_yml() validate_own_megalinter_config() manage_output_variables() + reformat_markdown_tables() if RELEASE is True: generate_version() diff --git a/.automation/format-tables.sh b/.automation/format-tables.sh new file mode 100755 index 00000000000..1260a4261e4 --- /dev/null +++ b/.automation/format-tables.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +cd .. +echo "Formatting markdown tables..." +npx markdown-table-formatter "./**/*.md" diff --git a/.automation/generated/flavors-stats.json b/.automation/generated/flavors-stats.json index 01d4e7f3970..890717906d3 100644 --- a/.automation/generated/flavors-stats.json +++ b/.automation/generated/flavors-stats.json @@ -5734,7 +5734,7 @@ ], [ "2021-10-30T20:34:54", - 46 + 49 ], [ "2021-10-31T18:17:07", diff --git a/.automation/generated/linter-helps.json b/.automation/generated/linter-helps.json index ff78bafab2c..d3283d6834b 100644 --- a/.automation/generated/linter-helps.json +++ b/.automation/generated/linter-helps.json @@ -1671,6 +1671,60 @@ "to read about a specific subcommand or concept.", "See 'git help git' for an overview of the system." ], + "gitleaks": [ + "Usage:", + " C:\\Users\\33614\\go\\bin\\gitleaks.EXE [OPTIONS]", + "", + "Application Options:", + " /v, /verbose Show verbose output from scan", + " /q, /quiet Sets log level to error and only output leaks, one", + " json object per line", + " /r, /repo-url: Repository URL", + " /p, /path: Path to directory (repo if contains .git) or file", + " /c, /config-path: Path to config", + " /repo-config-path: Path to gitleaks config relative to repo root", + " /clone-path: Path to clone repo to disk", + " /version Version number", + " /username: Username for git repo", + " /password: Password for git repo", + " /access-token: Access token for git repo", + " /threads: Maximum number of threads gitleaks spawns", + " /ssh-key: Path to ssh key used for auth", + " /unstaged Run gitleaks on unstaged code", + " /branch: Branch to scan", + " /redact Redact secrets from log messages and leaks", + " /debug Log debug messages", + " /no-git Treat git repos as plain directories and scan those", + " files", + " /leaks-exit-code: Exit code when leaks have been encountered", + " (default: 1)", + " /append-repo-config Append the provided or default config with the repo", + " config.", + " /additional-config: Path to an additional gitleaks config to append", + " with an existing config. Can be used with", + " --append-repo-config to append up to three", + " configurations", + " /o, /report: Report output path", + " /f, /format: json, csv, sarif (default: json)", + " /files-at-commit: Sha of commit to scan all files at commit", + " /commit: Sha of commit to scan or \"latest\" to scan the last", + " commit of the repository", + " /commits: Comma separated list of a commits to scan", + " /commits-file: Path to file of line separated list of commits to", + " scan", + " /commit-from: Commit to start scan from", + " /commit-to: Commit to stop scan", + " /commit-since: Scan commits more recent than a specific date. Ex:", + " '2006-01-02' or '2006-01-02T15:04:05-0700' format.", + " /commit-until: Scan commits older than a specific date. Ex:", + " '2006-01-02' or '2006-01-02T15:04:05-0700' format.", + " /depth: Number of commits to scan", + "", + "Help Options:", + " /? Show this help message", + " /h, /help Show this help message", + "" + ], "golangci-lint": [ "Smart, fast linters runner. Run it in cloud for every GitHub pull request on https://golangci.com", "", @@ -1699,6 +1753,17 @@ "", "Use \"golangci-lint [command] --help\" for more information about a command." ], + "goodcheck": [ + "Usage: goodcheck [options] [args...]", + "", + "Commands:", + " goodcheck init Generate a sample configuration file", + " goodcheck check Run check with a configuration", + " goodcheck test Test your configuration", + " goodcheck pattern Print regexp for rules", + " goodcheck version Print version", + " goodcheck help Show help and quit" + ], "graphql-schema-linter": [ "Usage: graphql-schema-linter [options] [schema.graphql ...]", "", @@ -5537,7 +5602,7 @@ "VfHtmlStyleTagXss visualforce Security pmd", "VfUnescapeEl visualforce Security Basic VF pmd", "ApexAssertionsShouldIncludeMessage apex Best Practices pmd", - "ApexUnitTestClassShouldHaveAsserts apex Best Practices ApexUnit,Default ruleset...,quickstart pmd", + "ApexUnitTestClassShouldHaveAsserts apex Best Practices Default ruleset...,ApexUnit,quickstart pmd", "ApexUnitTestMethodShouldHaveIsTestAnnotation apex Best Practices pmd", "ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices ApexUnit,Default ruleset...,quickstart pmd", "AvoidGlobalModifier apex Best Practices Default ruleset...,Style,quickstart pmd", @@ -5590,11 +5655,11 @@ "AvoidDirectAccessTriggerMap apex Error Prone Default ruleset...,Style,quickstart pmd", "AvoidHardcodingId apex Error Prone Default ruleset...,Style,quickstart pmd", "AvoidNonExistentAnnotations apex Error Prone Default ruleset...,quickstart pmd", - "EmptyCatchBlock apex Error Prone Default ruleset...,Empty Code,quickstart pmd", - "EmptyIfStmt apex Error Prone Default ruleset...,Empty Code,quickstart pmd", - "EmptyStatementBlock apex Error Prone Default ruleset...,Empty Code,quickstart pmd", - "EmptyTryOrFinallyBlock apex Error Prone Default ruleset...,Empty Code,quickstart pmd", - "EmptyWhileStmt apex Error Prone Default ruleset...,Empty Code,quickstart pmd", + "EmptyCatchBlock apex Error Prone Default ruleset...,quickstart,Empty Code pmd", + "EmptyIfStmt apex Error Prone Default ruleset...,quickstart,Empty Code pmd", + "EmptyStatementBlock apex Error Prone Default ruleset...,quickstart,Empty Code pmd", + "EmptyTryOrFinallyBlock apex Error Prone Default ruleset...,quickstart,Empty Code pmd", + "EmptyWhileStmt apex Error Prone Default ruleset...,quickstart,Empty Code pmd", "InaccessibleAuraEnabledGetter apex Error Prone pmd", "MethodWithSameNameAsEnclosingClass apex Error Prone Default ruleset...,Style,quickstart pmd", "OverrideBothEqualsAndHashcode apex Error Prone pmd", @@ -5878,7 +5943,7 @@ "VfHtmlStyleTagXss visualforce Security pmd", "VfUnescapeEl visualforce Security Basic VF pmd", "ApexAssertionsShouldIncludeMessage apex Best Practices pmd", - "ApexUnitTestClassShouldHaveAsserts apex Best Practices ApexUnit,Default ruleset...,quickstart pmd", + "ApexUnitTestClassShouldHaveAsserts apex Best Practices Default ruleset...,ApexUnit,quickstart pmd", "ApexUnitTestMethodShouldHaveIsTestAnnotation apex Best Practices pmd", "ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices ApexUnit,Default ruleset...,quickstart pmd", "AvoidGlobalModifier apex Best Practices Default ruleset...,Style,quickstart pmd", @@ -5931,11 +5996,11 @@ "AvoidDirectAccessTriggerMap apex Error Prone Default ruleset...,Style,quickstart pmd", "AvoidHardcodingId apex Error Prone Default ruleset...,Style,quickstart pmd", "AvoidNonExistentAnnotations apex Error Prone Default ruleset...,quickstart pmd", - "EmptyCatchBlock apex Error Prone Default ruleset...,Empty Code,quickstart pmd", - "EmptyIfStmt apex Error Prone Default ruleset...,Empty Code,quickstart pmd", - "EmptyStatementBlock apex Error Prone Default ruleset...,Empty Code,quickstart pmd", - "EmptyTryOrFinallyBlock apex Error Prone Default ruleset...,Empty Code,quickstart pmd", - "EmptyWhileStmt apex Error Prone Default ruleset...,Empty Code,quickstart pmd", + "EmptyCatchBlock apex Error Prone Default ruleset...,quickstart,Empty Code pmd", + "EmptyIfStmt apex Error Prone Default ruleset...,quickstart,Empty Code pmd", + "EmptyStatementBlock apex Error Prone Default ruleset...,quickstart,Empty Code pmd", + "EmptyTryOrFinallyBlock apex Error Prone Default ruleset...,quickstart,Empty Code pmd", + "EmptyWhileStmt apex Error Prone Default ruleset...,quickstart,Empty Code pmd", "InaccessibleAuraEnabledGetter apex Error Prone pmd", "MethodWithSameNameAsEnclosingClass apex Error Prone Default ruleset...,Style,quickstart pmd", "OverrideBothEqualsAndHashcode apex Error Prone pmd", diff --git a/.automation/generated/linter-licenses.json b/.automation/generated/linter-licenses.json index a401f74349f..2f852647cad 100644 --- a/.automation/generated/linter-licenses.json +++ b/.automation/generated/linter-licenses.json @@ -3,18 +3,28 @@ "ansible-lint": "GPL-3.0", "bandit": "Apache-2.0", "black": "MIT", + "cfn-lint": "MIT-0", "checkov": "Apache-2.0", "checkstyle": "LGPL-2.1", "coffeelint": "Other", "cspell": "MIT", "dartanalyzer": "BSD-3-Clause", + "devskim": "MIT", + "dockerfilelint": "MIT", "dotenv-linter": "MIT", + "dotnet-format": "MIT", + "dustilock": "Apache-2.0", "editorconfig-checker": "MIT", "eslint": "MIT", "eslint-plugin-jsonc": "MIT", "flake8": "Other", + "gherkin-lint": "ISC", "git_diff": "Other", + "gitleaks": "MIT", "golangci-lint": "GPL-3.0", + "goodcheck": "MIT", + "graphql-schema-linter": "MIT", + "hadolint": "GPL-3.0", "htmlhint": "MIT", "isort": "MIT", "jscpd": "MIT", @@ -29,6 +39,7 @@ "perlcritic": "Other", "php": "Other", "phpstan": "MIT", + "pmd": "Other", "prettier": "MIT", "psalm": "MIT", "puppet-lint": "MIT", @@ -51,6 +62,7 @@ "terraform-fmt": "MPL-2.0", "terragrunt": "MIT", "terrascan": "Apache-2.0", + "trivy": "Apache-2.0", "tsqllint": "MIT", "yamllint": "GPL-3.0" } \ No newline at end of file diff --git a/.automation/generated/linter-links-previews.json b/.automation/generated/linter-links-previews.json index 00fc292c330..930a8e855ae 100644 --- a/.automation/generated/linter-links-previews.json +++ b/.automation/generated/linter-links-previews.json @@ -79,6 +79,11 @@ "image": "https://repository-images.githubusercontent.com/35726310/78196080-8aee-11ea-8736-5d358571e7db", "title": "dart-lang/sdk" }, + "devskim": { + "description": "DevSkim is a set of IDE plugins and rules that provide security "linting" capabilities. - GitHub - microsoft/DevSkim: DevSkim is a set of IDE plugins and rules that provide security "...", + "image": "https://opengraph.githubassets.com/e833e13fb1284378f44a593a44685cf5c8f5eba2eb392202a3cced2c4e044fea/microsoft/DevSkim", + "title": "GitHub - microsoft/DevSkim: DevSkim is a set of IDE plugins and rules that provide security \"linting\" capabilities." + }, "dockerfilelint": { "description": "An opinionated Dockerfile linter. Contribute to replicatedhq/dockerfilelint development by creating an account on GitHub.", "image": "https://avatars3.githubusercontent.com/u/13105802?s=400&v=4", @@ -94,6 +99,11 @@ "image": "https://avatars0.githubusercontent.com/u/9141961?s=400&v=4", "title": "dotnet/format" }, + "dustilock": { + "description": "DustiLock is a tool to find which of your dependencies is susceptible to a Dependency Confusion attack. - GitHub - Checkmarx/dustilock: DustiLock is a tool to find which of your dependencies is sus...", + "image": "https://repository-images.githubusercontent.com/338069320/e23e3b0b-48e4-4bf3-a662-9deddcddfbd4", + "title": "GitHub - Checkmarx/dustilock: DustiLock is a tool to find which of your dependencies is susceptible to a Dependency Confusion attack." + }, "editorconfig-checker": { "description": "A tool to verify that your files are in harmony with your .editorconfig - editorconfig-checker/editorconfig-checker", "image": "https://avatars0.githubusercontent.com/u/26415196?s=400&v=4", @@ -124,11 +134,21 @@ "image": null, "title": "Git" }, + "gitleaks": { + "description": "Scan git repos (or files) for secrets using regex and entropy \ud83d\udd11 - GitHub - zricethezav/gitleaks: Scan git repos (or files) for secrets using regex and entropy \ud83d\udd11", + "image": "https://opengraph.githubassets.com/a84e777c61cc9ba80250c9dddb6fdbdee3791fd5e6e9b40f4e53d91dcad39d5c/zricethezav/gitleaks", + "title": "GitHub - zricethezav/gitleaks: Scan git repos (or files) for secrets using regex and entropy \ud83d\udd11" + }, "golangci-lint": { "description": "Fast linters Runner for Go. Contribute to golangci/golangci-lint development by creating an account on GitHub.", "image": "https://repository-images.githubusercontent.com/132145189/05239680-dfaf-11e9-9646-2c3ef2f5f8d4", "title": "golangci/golangci-lint" }, + "goodcheck": { + "description": "None", + "image": null, + "title": "Goodcheck" + }, "graphql-schema-linter": { "description": "Validate GraphQL schema definitions against a set of rules - cjoudrey/graphql-schema-linter", "image": "https://avatars0.githubusercontent.com/u/385270?s=400&v=4", @@ -249,6 +269,11 @@ "image": "https://avatars3.githubusercontent.com/u/16435710?s=400&v=4", "title": "phpstan/phpstan" }, + "pmd": { + "description": "PMD is a source code analyzer. It finds unused variables, empty catch blocks, unnecessary object creation, and so forth.", + "image": null, + "title": "PMD" + }, "powershell": { "description": "Download ScriptAnalyzer from PowerShellGallery. Contribute to PowerShell/PSScriptAnalyzer development by creating an account on GitHub.", "image": "https://repository-images.githubusercontent.com/33149177/18c68000-a5b0-11e9-9d88-c03ff0e21635", @@ -329,6 +354,11 @@ "image": "https://repository-images.githubusercontent.com/239106765/29bc0580-5b2f-11ea-89e2-d985890508c1", "title": "GitHub - secretlint/secretlint: Pluggable linting tool to prevent committing credential." }, + "semgrep": { + "description": "None", + "image": null, + "title": "Semgrep" + }, "sfdx-scanner": { "description": "", "image": null, @@ -399,6 +429,11 @@ "image": "https://avatars3.githubusercontent.com/u/7575099?s=400&v=4", "title": "realm/SwiftLint" }, + "syft": { + "description": "CLI tool and library for generating a Software Bill of Materials from container images and filesystems - GitHub - anchore/syft: CLI tool and library for generating a Software Bill of Materials from...", + "image": "https://repository-images.githubusercontent.com/262126497/7821d6d6-735d-4290-a708-d0801649b6e3", + "title": "GitHub - anchore/syft: CLI tool and library for generating a Software Bill of Materials from container images and filesystems" + }, "tekton-lint": { "description": "Linter for Tekton definitions. Contribute to IBM/tekton-lint development by creating an account on GitHub.", "image": "https://avatars0.githubusercontent.com/u/1459110?s=400&v=4", @@ -424,6 +459,11 @@ "image": "https://avatars1.githubusercontent.com/u/54197850?s=400&v=4", "title": "terraform-linters/tflint" }, + "trivy": { + "description": "None", + "image": null, + "title": "Redirecting" + }, "tsqllint": { "description": "Configurable linting for TSQL. Contribute to tsqllint/tsqllint development by creating an account on GitHub.", "image": "https://opengraph.githubassets.com/07bcefab8d31eb93bc746724c678639f64a396bb33c2f36f56b4c47d73906d60/tsqllint/tsqllint", diff --git a/.automation/generated/megalinter-users.json b/.automation/generated/megalinter-users.json index 58f387d3159..1db32d4349c 100644 --- a/.automation/generated/megalinter-users.json +++ b/.automation/generated/megalinter-users.json @@ -23,8 +23,8 @@ "downloads_url": "https://api.github.com/repos/nektos/act/downloads", "events_url": "https://api.github.com/repos/nektos/act/events", "fork": false, - "forks": 672, - "forks_count": 672, + "forks": 681, + "forks_count": 681, "forks_url": "https://api.github.com/repos/nektos/act/forks", "full_name": "nektos/act", "git_commits_url": "https://api.github.com/repos/nektos/act/git/commits{/sha}", @@ -59,7 +59,7 @@ "milestones_url": "https://api.github.com/repos/nektos/act/milestones{/number}", "mirror_url": null, "name": "act", - "network_count": 672, + "network_count": 681, "node_id": "MDEwOlJlcG9zaXRvcnkxNjM4ODMyNzk=", "notifications_url": "https://api.github.com/repos/nektos/act/notifications{?since,all,participating}", "open_issues": 74, @@ -106,14 +106,14 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/nektos/act/pulls{/number}", - "pushed_at": "2022-06-24T11:38:13Z", + "pushed_at": "2022-07-08T22:39:42Z", "releases_url": "https://api.github.com/repos/nektos/act/releases{/id}", - "size": 5865, + "size": 6050, "ssh_url": "git@github.com:nektos/act.git", - "stargazers_count": 25469, + "stargazers_count": 25879, "stargazers_url": "https://api.github.com/repos/nektos/act/stargazers", "statuses_url": "https://api.github.com/repos/nektos/act/statuses/{sha}", - "subscribers_count": 116, + "subscribers_count": 117, "subscribers_url": "https://api.github.com/repos/nektos/act/subscribers", "subscription_url": "https://api.github.com/repos/nektos/act/subscription", "svn_url": "https://github.com/nektos/act", @@ -127,14 +127,15 @@ "golang" ], "trees_url": "https://api.github.com/repos/nektos/act/git/trees{/sha}", - "updated_at": "2022-06-26T10:07:28Z", + "updated_at": "2022-07-10T09:34:34Z", "url": "https://api.github.com/repos/nektos/act", "visibility": "public", - "watchers": 25469, - "watchers_count": 25469 + "watchers": 25879, + "watchers_count": 25879, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/nektos/act", - "stargazers": 25469 + "stargazers": 25879 }, { "info": { @@ -198,8 +199,8 @@ "network_count": 313, "node_id": "MDEwOlJlcG9zaXRvcnkxMTcyNjYxNg==", "notifications_url": "https://api.github.com/repos/stepancheg/rust-protobuf/notifications{?since,all,participating}", - "open_issues": 26, - "open_issues_count": 26, + "open_issues": 30, + "open_issues_count": 30, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/28969?v=4", "events_url": "https://api.github.com/users/stepancheg/events{/privacy}", @@ -226,7 +227,7 @@ "releases_url": "https://api.github.com/repos/stepancheg/rust-protobuf/releases{/id}", "size": 55947, "ssh_url": "git@github.com:stepancheg/rust-protobuf.git", - "stargazers_count": 2089, + "stargazers_count": 2099, "stargazers_url": "https://api.github.com/repos/stepancheg/rust-protobuf/stargazers", "statuses_url": "https://api.github.com/repos/stepancheg/rust-protobuf/statuses/{sha}", "subscribers_count": 20, @@ -242,14 +243,253 @@ "serialization" ], "trees_url": "https://api.github.com/repos/stepancheg/rust-protobuf/git/trees{/sha}", - "updated_at": "2022-06-23T01:02:33Z", + "updated_at": "2022-07-06T04:24:12Z", "url": "https://api.github.com/repos/stepancheg/rust-protobuf", "visibility": "public", - "watchers": 2089, - "watchers_count": 2089 + "watchers": 2099, + "watchers_count": 2099, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/stepancheg/rust-protobuf", - "stargazers": 2089 + "stargazers": 2099 + }, + { + "info": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/IlanCosman/tide/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/IlanCosman/tide/assignees{/user}", + "blobs_url": "https://api.github.com/repos/IlanCosman/tide/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/IlanCosman/tide/branches{/branch}", + "clone_url": "https://github.com/IlanCosman/tide.git", + "collaborators_url": "https://api.github.com/repos/IlanCosman/tide/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/IlanCosman/tide/comments{/number}", + "commits_url": "https://api.github.com/repos/IlanCosman/tide/commits{/sha}", + "compare_url": "https://api.github.com/repos/IlanCosman/tide/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/IlanCosman/tide/contents/{+path}", + "contributors_url": "https://api.github.com/repos/IlanCosman/tide/contributors", + "created_at": "2020-04-02T04:05:46Z", + "default_branch": "main", + "deployments_url": "https://api.github.com/repos/IlanCosman/tide/deployments", + "description": "\ud83c\udf0a The ultimate Fish prompt.", + "disabled": false, + "downloads_url": "https://api.github.com/repos/IlanCosman/tide/downloads", + "events_url": "https://api.github.com/repos/IlanCosman/tide/events", + "fork": false, + "forks": 62, + "forks_count": 62, + "forks_url": "https://api.github.com/repos/IlanCosman/tide/forks", + "full_name": "IlanCosman/tide", + "git_commits_url": "https://api.github.com/repos/IlanCosman/tide/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/IlanCosman/tide/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/IlanCosman/tide/git/tags{/sha}", + "git_url": "git://github.com/IlanCosman/tide.git", + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": false, + "has_wiki": true, + "homepage": "", + "hooks_url": "https://api.github.com/repos/IlanCosman/tide/hooks", + "html_url": "https://github.com/IlanCosman/tide", + "id": 252351960, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/IlanCosman/tide/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/IlanCosman/tide/issues/events{/number}", + "issues_url": "https://api.github.com/repos/IlanCosman/tide/issues{/number}", + "keys_url": "https://api.github.com/repos/IlanCosman/tide/keys{/key_id}", + "labels_url": "https://api.github.com/repos/IlanCosman/tide/labels{/name}", + "language": "Shell", + "languages_url": "https://api.github.com/repos/IlanCosman/tide/languages", + "license": { + "key": "mit", + "name": "MIT License", + "node_id": "MDc6TGljZW5zZTEz", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit" + }, + "merges_url": "https://api.github.com/repos/IlanCosman/tide/merges", + "milestones_url": "https://api.github.com/repos/IlanCosman/tide/milestones{/number}", + "mirror_url": null, + "name": "tide", + "network_count": 62, + "node_id": "MDEwOlJlcG9zaXRvcnkyNTIzNTE5NjA=", + "notifications_url": "https://api.github.com/repos/IlanCosman/tide/notifications{?since,all,participating}", + "open_issues": 15, + "open_issues_count": 15, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6318351?v=4", + "events_url": "https://api.github.com/users/IlanCosman/events{/privacy}", + "followers_url": "https://api.github.com/users/IlanCosman/followers", + "following_url": "https://api.github.com/users/IlanCosman/following{/other_user}", + "gists_url": "https://api.github.com/users/IlanCosman/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/IlanCosman", + "id": 6318351, + "login": "IlanCosman", + "node_id": "MDQ6VXNlcjYzMTgzNTE=", + "organizations_url": "https://api.github.com/users/IlanCosman/orgs", + "received_events_url": "https://api.github.com/users/IlanCosman/received_events", + "repos_url": "https://api.github.com/users/IlanCosman/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/IlanCosman/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/IlanCosman/subscriptions", + "type": "User", + "url": "https://api.github.com/users/IlanCosman" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/IlanCosman/tide/pulls{/number}", + "pushed_at": "2022-06-24T13:56:01Z", + "releases_url": "https://api.github.com/repos/IlanCosman/tide/releases{/id}", + "size": 6387, + "ssh_url": "git@github.com:IlanCosman/tide.git", + "stargazers_count": 1362, + "stargazers_url": "https://api.github.com/repos/IlanCosman/tide/stargazers", + "statuses_url": "https://api.github.com/repos/IlanCosman/tide/statuses/{sha}", + "subscribers_count": 10, + "subscribers_url": "https://api.github.com/repos/IlanCosman/tide/subscribers", + "subscription_url": "https://api.github.com/repos/IlanCosman/tide/subscription", + "svn_url": "https://github.com/IlanCosman/tide", + "tags_url": "https://api.github.com/repos/IlanCosman/tide/tags", + "teams_url": "https://api.github.com/repos/IlanCosman/tide/teams", + "temp_clone_token": null, + "topics": [ + "fish", + "fish-plugin", + "fish-prompt", + "prompt" + ], + "trees_url": "https://api.github.com/repos/IlanCosman/tide/git/trees{/sha}", + "updated_at": "2022-07-09T17:06:24Z", + "url": "https://api.github.com/repos/IlanCosman/tide", + "visibility": "public", + "watchers": 1362, + "watchers_count": 1362, + "web_commit_signoff_required": false + }, + "repo_url": "https://github.com/IlanCosman/tide", + "stargazers": 1362 + }, + { + "info": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/dorssel/usbipd-win/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/dorssel/usbipd-win/assignees{/user}", + "blobs_url": "https://api.github.com/repos/dorssel/usbipd-win/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/dorssel/usbipd-win/branches{/branch}", + "clone_url": "https://github.com/dorssel/usbipd-win.git", + "collaborators_url": "https://api.github.com/repos/dorssel/usbipd-win/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/dorssel/usbipd-win/comments{/number}", + "commits_url": "https://api.github.com/repos/dorssel/usbipd-win/commits{/sha}", + "compare_url": "https://api.github.com/repos/dorssel/usbipd-win/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/dorssel/usbipd-win/contents/{+path}", + "contributors_url": "https://api.github.com/repos/dorssel/usbipd-win/contributors", + "created_at": "2020-10-18T21:44:11Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/dorssel/usbipd-win/deployments", + "description": "Windows software for sharing locally connected USB devices to other machines, including Hyper-V guests and WSL 2.", + "disabled": false, + "downloads_url": "https://api.github.com/repos/dorssel/usbipd-win/downloads", + "events_url": "https://api.github.com/repos/dorssel/usbipd-win/events", + "fork": false, + "forks": 66, + "forks_count": 66, + "forks_url": "https://api.github.com/repos/dorssel/usbipd-win/forks", + "full_name": "dorssel/usbipd-win", + "git_commits_url": "https://api.github.com/repos/dorssel/usbipd-win/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/dorssel/usbipd-win/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/dorssel/usbipd-win/git/tags{/sha}", + "git_url": "git://github.com/dorssel/usbipd-win.git", + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "", + "hooks_url": "https://api.github.com/repos/dorssel/usbipd-win/hooks", + "html_url": "https://github.com/dorssel/usbipd-win", + "id": 305202189, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/dorssel/usbipd-win/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/dorssel/usbipd-win/issues/events{/number}", + "issues_url": "https://api.github.com/repos/dorssel/usbipd-win/issues{/number}", + "keys_url": "https://api.github.com/repos/dorssel/usbipd-win/keys{/key_id}", + "labels_url": "https://api.github.com/repos/dorssel/usbipd-win/labels{/name}", + "language": "C#", + "languages_url": "https://api.github.com/repos/dorssel/usbipd-win/languages", + "license": { + "key": "gpl-2.0", + "name": "GNU General Public License v2.0", + "node_id": "MDc6TGljZW5zZTg=", + "spdx_id": "GPL-2.0", + "url": "https://api.github.com/licenses/gpl-2.0" + }, + "merges_url": "https://api.github.com/repos/dorssel/usbipd-win/merges", + "milestones_url": "https://api.github.com/repos/dorssel/usbipd-win/milestones{/number}", + "mirror_url": null, + "name": "usbipd-win", + "network_count": 66, + "node_id": "MDEwOlJlcG9zaXRvcnkzMDUyMDIxODk=", + "notifications_url": "https://api.github.com/repos/dorssel/usbipd-win/notifications{?since,all,participating}", + "open_issues": 12, + "open_issues_count": 12, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/17404029?v=4", + "events_url": "https://api.github.com/users/dorssel/events{/privacy}", + "followers_url": "https://api.github.com/users/dorssel/followers", + "following_url": "https://api.github.com/users/dorssel/following{/other_user}", + "gists_url": "https://api.github.com/users/dorssel/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/dorssel", + "id": 17404029, + "login": "dorssel", + "node_id": "MDQ6VXNlcjE3NDA0MDI5", + "organizations_url": "https://api.github.com/users/dorssel/orgs", + "received_events_url": "https://api.github.com/users/dorssel/received_events", + "repos_url": "https://api.github.com/users/dorssel/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/dorssel/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dorssel/subscriptions", + "type": "User", + "url": "https://api.github.com/users/dorssel" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/dorssel/usbipd-win/pulls{/number}", + "pushed_at": "2022-07-03T15:45:15Z", + "releases_url": "https://api.github.com/repos/dorssel/usbipd-win/releases{/id}", + "size": 1388, + "ssh_url": "git@github.com:dorssel/usbipd-win.git", + "stargazers_count": 962, + "stargazers_url": "https://api.github.com/repos/dorssel/usbipd-win/stargazers", + "statuses_url": "https://api.github.com/repos/dorssel/usbipd-win/statuses/{sha}", + "subscribers_count": 25, + "subscribers_url": "https://api.github.com/repos/dorssel/usbipd-win/subscribers", + "subscription_url": "https://api.github.com/repos/dorssel/usbipd-win/subscription", + "svn_url": "https://github.com/dorssel/usbipd-win", + "tags_url": "https://api.github.com/repos/dorssel/usbipd-win/tags", + "teams_url": "https://api.github.com/repos/dorssel/usbipd-win/teams", + "temp_clone_token": null, + "topics": [ + "hyper-v", + "usb", + "usbip", + "usbip-win", + "usbipd", + "windows", + "wsl", + "wsl2" + ], + "trees_url": "https://api.github.com/repos/dorssel/usbipd-win/git/trees{/sha}", + "updated_at": "2022-07-10T08:05:02Z", + "url": "https://api.github.com/repos/dorssel/usbipd-win", + "visibility": "public", + "watchers": 962, + "watchers_count": 962, + "web_commit_signoff_required": false + }, + "repo_url": "https://github.com/dorssel/usbipd-win", + "stargazers": 962 }, { "info": { @@ -341,10 +581,10 @@ "releases_url": "https://api.github.com/repos/flosse/sloc/releases{/id}", "size": 265, "ssh_url": "git@github.com:flosse/sloc.git", - "stargazers_count": 902, + "stargazers_count": 904, "stargazers_url": "https://api.github.com/repos/flosse/sloc/stargazers", "statuses_url": "https://api.github.com/repos/flosse/sloc/statuses/{sha}", - "subscribers_count": 20, + "subscribers_count": 21, "subscribers_url": "https://api.github.com/repos/flosse/sloc/subscribers", "subscription_url": "https://api.github.com/repos/flosse/sloc/subscription", "svn_url": "https://github.com/flosse/sloc", @@ -360,63 +600,64 @@ "unmaintained" ], "trees_url": "https://api.github.com/repos/flosse/sloc/git/trees{/sha}", - "updated_at": "2022-06-26T11:18:15Z", + "updated_at": "2022-07-09T09:44:17Z", "url": "https://api.github.com/repos/flosse/sloc", "visibility": "public", - "watchers": 902, - "watchers_count": 902 + "watchers": 904, + "watchers_count": 904, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/flosse/sloc", - "stargazers": 902 + "stargazers": 904 }, { "info": { "allow_forking": true, - "archive_url": "https://api.github.com/repos/megalinter/megalinter/{archive_format}{/ref}", + "archive_url": "https://api.github.com/repos/oxsecurity/megalinter/{archive_format}{/ref}", "archived": false, - "assignees_url": "https://api.github.com/repos/megalinter/megalinter/assignees{/user}", - "blobs_url": "https://api.github.com/repos/megalinter/megalinter/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/megalinter/megalinter/branches{/branch}", - "clone_url": "https://github.com/megalinter/megalinter.git", - "collaborators_url": "https://api.github.com/repos/megalinter/megalinter/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/megalinter/megalinter/comments{/number}", - "commits_url": "https://api.github.com/repos/megalinter/megalinter/commits{/sha}", - "compare_url": "https://api.github.com/repos/megalinter/megalinter/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/megalinter/megalinter/contents/{+path}", - "contributors_url": "https://api.github.com/repos/megalinter/megalinter/contributors", + "assignees_url": "https://api.github.com/repos/oxsecurity/megalinter/assignees{/user}", + "blobs_url": "https://api.github.com/repos/oxsecurity/megalinter/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/oxsecurity/megalinter/branches{/branch}", + "clone_url": "https://github.com/oxsecurity/megalinter.git", + "collaborators_url": "https://api.github.com/repos/oxsecurity/megalinter/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/oxsecurity/megalinter/comments{/number}", + "commits_url": "https://api.github.com/repos/oxsecurity/megalinter/commits{/sha}", + "compare_url": "https://api.github.com/repos/oxsecurity/megalinter/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/oxsecurity/megalinter/contents/{+path}", + "contributors_url": "https://api.github.com/repos/oxsecurity/megalinter/contributors", "created_at": "2020-10-17T08:16:25Z", "default_branch": "main", - "deployments_url": "https://api.github.com/repos/megalinter/megalinter/deployments", + "deployments_url": "https://api.github.com/repos/oxsecurity/megalinter/deployments", "description": "\ud83e\udd99 Mega-Linter analyzes 49 languages, 22 formats, 21 tooling formats, excessive copy-pastes, spelling mistakes and security issues in your repository sources with a GitHub Action, other CI tools or locally.", "disabled": false, - "downloads_url": "https://api.github.com/repos/megalinter/megalinter/downloads", - "events_url": "https://api.github.com/repos/megalinter/megalinter/events", + "downloads_url": "https://api.github.com/repos/oxsecurity/megalinter/downloads", + "events_url": "https://api.github.com/repos/oxsecurity/megalinter/events", "fork": false, - "forks": 101, - "forks_count": 101, - "forks_url": "https://api.github.com/repos/megalinter/megalinter/forks", - "full_name": "megalinter/megalinter", - "git_commits_url": "https://api.github.com/repos/megalinter/megalinter/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/megalinter/megalinter/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/megalinter/megalinter/git/tags{/sha}", - "git_url": "git://github.com/megalinter/megalinter.git", + "forks": 105, + "forks_count": 105, + "forks_url": "https://api.github.com/repos/oxsecurity/megalinter/forks", + "full_name": "oxsecurity/megalinter", + "git_commits_url": "https://api.github.com/repos/oxsecurity/megalinter/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/oxsecurity/megalinter/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/oxsecurity/megalinter/git/tags{/sha}", + "git_url": "git://github.com/oxsecurity/megalinter.git", "has_downloads": true, "has_issues": true, "has_pages": true, "has_projects": true, "has_wiki": false, "homepage": "https://megalinter.github.io", - "hooks_url": "https://api.github.com/repos/megalinter/megalinter/hooks", - "html_url": "https://github.com/megalinter/megalinter", + "hooks_url": "https://api.github.com/repos/oxsecurity/megalinter/hooks", + "html_url": "https://github.com/oxsecurity/megalinter", "id": 304830226, "is_template": false, - "issue_comment_url": "https://api.github.com/repos/megalinter/megalinter/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/megalinter/megalinter/issues/events{/number}", - "issues_url": "https://api.github.com/repos/megalinter/megalinter/issues{/number}", - "keys_url": "https://api.github.com/repos/megalinter/megalinter/keys{/key_id}", - "labels_url": "https://api.github.com/repos/megalinter/megalinter/labels{/name}", + "issue_comment_url": "https://api.github.com/repos/oxsecurity/megalinter/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/oxsecurity/megalinter/issues/events{/number}", + "issues_url": "https://api.github.com/repos/oxsecurity/megalinter/issues{/number}", + "keys_url": "https://api.github.com/repos/oxsecurity/megalinter/keys{/key_id}", + "labels_url": "https://api.github.com/repos/oxsecurity/megalinter/labels{/name}", "language": "Python", - "languages_url": "https://api.github.com/repos/megalinter/megalinter/languages", + "languages_url": "https://api.github.com/repos/oxsecurity/megalinter/languages", "license": { "key": "agpl-3.0", "name": "GNU Affero General Public License v3.0", @@ -424,70 +665,70 @@ "spdx_id": "AGPL-3.0", "url": "https://api.github.com/licenses/agpl-3.0" }, - "merges_url": "https://api.github.com/repos/megalinter/megalinter/merges", - "milestones_url": "https://api.github.com/repos/megalinter/megalinter/milestones{/number}", + "merges_url": "https://api.github.com/repos/oxsecurity/megalinter/merges", + "milestones_url": "https://api.github.com/repos/oxsecurity/megalinter/milestones{/number}", "mirror_url": null, "name": "megalinter", - "network_count": 101, + "network_count": 105, "node_id": "MDEwOlJlcG9zaXRvcnkzMDQ4MzAyMjY=", - "notifications_url": "https://api.github.com/repos/megalinter/megalinter/notifications{?since,all,participating}", - "open_issues": 44, - "open_issues_count": 44, + "notifications_url": "https://api.github.com/repos/oxsecurity/megalinter/notifications{?since,all,participating}", + "open_issues": 55, + "open_issues_count": 55, "organization": { - "avatar_url": "https://avatars.githubusercontent.com/u/76904213?v=4", - "events_url": "https://api.github.com/users/megalinter/events{/privacy}", - "followers_url": "https://api.github.com/users/megalinter/followers", - "following_url": "https://api.github.com/users/megalinter/following{/other_user}", - "gists_url": "https://api.github.com/users/megalinter/gists{/gist_id}", + "avatar_url": "https://avatars.githubusercontent.com/u/89921661?v=4", + "events_url": "https://api.github.com/users/oxsecurity/events{/privacy}", + "followers_url": "https://api.github.com/users/oxsecurity/followers", + "following_url": "https://api.github.com/users/oxsecurity/following{/other_user}", + "gists_url": "https://api.github.com/users/oxsecurity/gists{/gist_id}", "gravatar_id": "", - "html_url": "https://github.com/megalinter", - "id": 76904213, - "login": "megalinter", - "node_id": "MDEyOk9yZ2FuaXphdGlvbjc2OTA0MjEz", - "organizations_url": "https://api.github.com/users/megalinter/orgs", - "received_events_url": "https://api.github.com/users/megalinter/received_events", - "repos_url": "https://api.github.com/users/megalinter/repos", + "html_url": "https://github.com/oxsecurity", + "id": 89921661, + "login": "oxsecurity", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjg5OTIxNjYx", + "organizations_url": "https://api.github.com/users/oxsecurity/orgs", + "received_events_url": "https://api.github.com/users/oxsecurity/received_events", + "repos_url": "https://api.github.com/users/oxsecurity/repos", "site_admin": false, - "starred_url": "https://api.github.com/users/megalinter/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/megalinter/subscriptions", + "starred_url": "https://api.github.com/users/oxsecurity/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/oxsecurity/subscriptions", "type": "Organization", - "url": "https://api.github.com/users/megalinter" + "url": "https://api.github.com/users/oxsecurity" }, "owner": { - "avatar_url": "https://avatars.githubusercontent.com/u/76904213?v=4", - "events_url": "https://api.github.com/users/megalinter/events{/privacy}", - "followers_url": "https://api.github.com/users/megalinter/followers", - "following_url": "https://api.github.com/users/megalinter/following{/other_user}", - "gists_url": "https://api.github.com/users/megalinter/gists{/gist_id}", + "avatar_url": "https://avatars.githubusercontent.com/u/89921661?v=4", + "events_url": "https://api.github.com/users/oxsecurity/events{/privacy}", + "followers_url": "https://api.github.com/users/oxsecurity/followers", + "following_url": "https://api.github.com/users/oxsecurity/following{/other_user}", + "gists_url": "https://api.github.com/users/oxsecurity/gists{/gist_id}", "gravatar_id": "", - "html_url": "https://github.com/megalinter", - "id": 76904213, - "login": "megalinter", - "node_id": "MDEyOk9yZ2FuaXphdGlvbjc2OTA0MjEz", - "organizations_url": "https://api.github.com/users/megalinter/orgs", - "received_events_url": "https://api.github.com/users/megalinter/received_events", - "repos_url": "https://api.github.com/users/megalinter/repos", + "html_url": "https://github.com/oxsecurity", + "id": 89921661, + "login": "oxsecurity", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjg5OTIxNjYx", + "organizations_url": "https://api.github.com/users/oxsecurity/orgs", + "received_events_url": "https://api.github.com/users/oxsecurity/received_events", + "repos_url": "https://api.github.com/users/oxsecurity/repos", "site_admin": false, - "starred_url": "https://api.github.com/users/megalinter/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/megalinter/subscriptions", + "starred_url": "https://api.github.com/users/oxsecurity/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/oxsecurity/subscriptions", "type": "Organization", - "url": "https://api.github.com/users/megalinter" + "url": "https://api.github.com/users/oxsecurity" }, "private": false, - "pulls_url": "https://api.github.com/repos/megalinter/megalinter/pulls{/number}", - "pushed_at": "2022-06-26T13:14:00Z", - "releases_url": "https://api.github.com/repos/megalinter/megalinter/releases{/id}", - "size": 151072, - "ssh_url": "git@github.com:megalinter/megalinter.git", - "stargazers_count": 680, - "stargazers_url": "https://api.github.com/repos/megalinter/megalinter/stargazers", - "statuses_url": "https://api.github.com/repos/megalinter/megalinter/statuses/{sha}", + "pulls_url": "https://api.github.com/repos/oxsecurity/megalinter/pulls{/number}", + "pushed_at": "2022-07-10T09:19:34Z", + "releases_url": "https://api.github.com/repos/oxsecurity/megalinter/releases{/id}", + "size": 170117, + "ssh_url": "git@github.com:oxsecurity/megalinter.git", + "stargazers_count": 700, + "stargazers_url": "https://api.github.com/repos/oxsecurity/megalinter/stargazers", + "statuses_url": "https://api.github.com/repos/oxsecurity/megalinter/statuses/{sha}", "subscribers_count": 7, - "subscribers_url": "https://api.github.com/repos/megalinter/megalinter/subscribers", - "subscription_url": "https://api.github.com/repos/megalinter/megalinter/subscription", - "svn_url": "https://github.com/megalinter/megalinter", - "tags_url": "https://api.github.com/repos/megalinter/megalinter/tags", - "teams_url": "https://api.github.com/repos/megalinter/megalinter/teams", + "subscribers_url": "https://api.github.com/repos/oxsecurity/megalinter/subscribers", + "subscription_url": "https://api.github.com/repos/oxsecurity/megalinter/subscription", + "svn_url": "https://github.com/oxsecurity/megalinter", + "tags_url": "https://api.github.com/repos/oxsecurity/megalinter/tags", + "teams_url": "https://api.github.com/repos/oxsecurity/megalinter/teams", "temp_clone_token": null, "topics": [ "best-practices", @@ -510,15 +751,16 @@ "rust", "terraform" ], - "trees_url": "https://api.github.com/repos/megalinter/megalinter/git/trees{/sha}", - "updated_at": "2022-06-24T18:26:36Z", - "url": "https://api.github.com/repos/megalinter/megalinter", + "trees_url": "https://api.github.com/repos/oxsecurity/megalinter/git/trees{/sha}", + "updated_at": "2022-07-10T09:12:57Z", + "url": "https://api.github.com/repos/oxsecurity/megalinter", "visibility": "public", - "watchers": 680, - "watchers_count": 680 + "watchers": 700, + "watchers_count": 700, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/megalinter/megalinter", - "stargazers": 680 + "stargazers": 700 }, { "info": { @@ -543,8 +785,8 @@ "downloads_url": "https://api.github.com/repos/onedr0p/home-ops/downloads", "events_url": "https://api.github.com/repos/onedr0p/home-ops/events", "fork": false, - "forks": 87, - "forks_count": 87, + "forks": 88, + "forks_count": 88, "forks_url": "https://api.github.com/repos/onedr0p/home-ops/forks", "full_name": "onedr0p/home-ops", "git_commits_url": "https://api.github.com/repos/onedr0p/home-ops/git/commits{/sha}", @@ -579,11 +821,11 @@ "milestones_url": "https://api.github.com/repos/onedr0p/home-ops/milestones{/number}", "mirror_url": null, "name": "home-ops", - "network_count": 87, + "network_count": 88, "node_id": "MDEwOlJlcG9zaXRvcnkyMzA5OTk4MjY=", "notifications_url": "https://api.github.com/repos/onedr0p/home-ops/notifications{?since,all,participating}", - "open_issues": 11, - "open_issues_count": 11, + "open_issues": 10, + "open_issues_count": 10, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/213795?v=4", "events_url": "https://api.github.com/users/onedr0p/events{/privacy}", @@ -606,11 +848,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/onedr0p/home-ops/pulls{/number}", - "pushed_at": "2022-06-26T12:54:36Z", + "pushed_at": "2022-07-10T02:44:26Z", "releases_url": "https://api.github.com/repos/onedr0p/home-ops/releases{/id}", - "size": 24327, + "size": 24556, "ssh_url": "git@github.com:onedr0p/home-ops.git", - "stargazers_count": 554, + "stargazers_count": 564, "stargazers_url": "https://api.github.com/repos/onedr0p/home-ops/stargazers", "statuses_url": "https://api.github.com/repos/onedr0p/home-ops/statuses/{sha}", "subscribers_count": 8, @@ -632,14 +874,15 @@ "terraform" ], "trees_url": "https://api.github.com/repos/onedr0p/home-ops/git/trees{/sha}", - "updated_at": "2022-06-26T05:11:51Z", + "updated_at": "2022-07-09T03:00:19Z", "url": "https://api.github.com/repos/onedr0p/home-ops", "visibility": "public", - "watchers": 554, - "watchers_count": 554 + "watchers": 564, + "watchers_count": 564, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/onedr0p/home-ops", - "stargazers": 554 + "stargazers": 564 }, { "info": { @@ -727,11 +970,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/unixorn/zsh-quickstart-kit/pulls{/number}", - "pushed_at": "2022-06-20T16:34:06Z", + "pushed_at": "2022-07-08T11:04:10Z", "releases_url": "https://api.github.com/repos/unixorn/zsh-quickstart-kit/releases{/id}", - "size": 405, + "size": 406, "ssh_url": "git@github.com:unixorn/zsh-quickstart-kit.git", - "stargazers_count": 546, + "stargazers_count": 549, "stargazers_url": "https://api.github.com/repos/unixorn/zsh-quickstart-kit/stargazers", "statuses_url": "https://api.github.com/repos/unixorn/zsh-quickstart-kit/statuses/{sha}", "subscribers_count": 13, @@ -758,14 +1001,15 @@ "zshrc-enhancements" ], "trees_url": "https://api.github.com/repos/unixorn/zsh-quickstart-kit/git/trees{/sha}", - "updated_at": "2022-06-17T14:02:16Z", + "updated_at": "2022-07-08T14:56:18Z", "url": "https://api.github.com/repos/unixorn/zsh-quickstart-kit", "visibility": "public", - "watchers": 546, - "watchers_count": 546 + "watchers": 549, + "watchers_count": 549, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/unixorn/zsh-quickstart-kit", - "stargazers": 546 + "stargazers": 549 }, { "info": { @@ -790,8 +1034,8 @@ "downloads_url": "https://api.github.com/repos/secureCodeBox/secureCodeBox/downloads", "events_url": "https://api.github.com/repos/secureCodeBox/secureCodeBox/events", "fork": false, - "forks": 103, - "forks_count": 103, + "forks": 105, + "forks_count": 105, "forks_url": "https://api.github.com/repos/secureCodeBox/secureCodeBox/forks", "full_name": "secureCodeBox/secureCodeBox", "git_commits_url": "https://api.github.com/repos/secureCodeBox/secureCodeBox/git/commits{/sha}", @@ -826,11 +1070,11 @@ "milestones_url": "https://api.github.com/repos/secureCodeBox/secureCodeBox/milestones{/number}", "mirror_url": null, "name": "secureCodeBox", - "network_count": 103, + "network_count": 105, "node_id": "MDEwOlJlcG9zaXRvcnk4MDcxMTkzMw==", "notifications_url": "https://api.github.com/repos/secureCodeBox/secureCodeBox/notifications{?since,all,participating}", - "open_issues": 101, - "open_issues_count": 101, + "open_issues": 104, + "open_issues_count": 104, "organization": { "avatar_url": "https://avatars.githubusercontent.com/u/34573705?v=4", "events_url": "https://api.github.com/users/secureCodeBox/events{/privacy}", @@ -873,14 +1117,14 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/secureCodeBox/secureCodeBox/pulls{/number}", - "pushed_at": "2022-06-25T09:57:59Z", + "pushed_at": "2022-07-09T20:21:48Z", "releases_url": "https://api.github.com/repos/secureCodeBox/secureCodeBox/releases{/id}", - "size": 27103, + "size": 27119, "ssh_url": "git@github.com:secureCodeBox/secureCodeBox.git", - "stargazers_count": 491, + "stargazers_count": 501, "stargazers_url": "https://api.github.com/repos/secureCodeBox/secureCodeBox/stargazers", "statuses_url": "https://api.github.com/repos/secureCodeBox/secureCodeBox/statuses/{sha}", - "subscribers_count": 29, + "subscribers_count": 31, "subscribers_url": "https://api.github.com/repos/secureCodeBox/secureCodeBox/subscribers", "subscription_url": "https://api.github.com/repos/secureCodeBox/secureCodeBox/subscription", "svn_url": "https://github.com/secureCodeBox/secureCodeBox", @@ -901,14 +1145,15 @@ "security-tools" ], "trees_url": "https://api.github.com/repos/secureCodeBox/secureCodeBox/git/trees{/sha}", - "updated_at": "2022-06-25T10:57:51Z", + "updated_at": "2022-07-05T20:57:33Z", "url": "https://api.github.com/repos/secureCodeBox/secureCodeBox", "visibility": "public", - "watchers": 491, - "watchers_count": 491 + "watchers": 501, + "watchers_count": 501, + "web_commit_signoff_required": true }, "repo_url": "https://github.com/secureCodeBox/secureCodeBox", - "stargazers": 491 + "stargazers": 501 }, { "info": { @@ -933,8 +1178,8 @@ "downloads_url": "https://api.github.com/repos/practicalli/clojure-deps-edn/downloads", "events_url": "https://api.github.com/repos/practicalli/clojure-deps-edn/events", "fork": false, - "forks": 480, - "forks_count": 480, + "forks": 481, + "forks_count": 481, "forks_url": "https://api.github.com/repos/practicalli/clojure-deps-edn/forks", "full_name": "practicalli/clojure-deps-edn", "git_commits_url": "https://api.github.com/repos/practicalli/clojure-deps-edn/git/commits{/sha}", @@ -963,11 +1208,11 @@ "milestones_url": "https://api.github.com/repos/practicalli/clojure-deps-edn/milestones{/number}", "mirror_url": null, "name": "clojure-deps-edn", - "network_count": 480, + "network_count": 481, "node_id": "MDEwOlJlcG9zaXRvcnkyODM3MjYwNTI=", "notifications_url": "https://api.github.com/repos/practicalli/clojure-deps-edn/notifications{?since,all,participating}", - "open_issues": 4, - "open_issues_count": 4, + "open_issues": 3, + "open_issues_count": 3, "organization": { "avatar_url": "https://avatars.githubusercontent.com/u/8628530?v=4", "events_url": "https://api.github.com/users/practicalli/events{/privacy}", @@ -1010,11 +1255,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/practicalli/clojure-deps-edn/pulls{/number}", - "pushed_at": "2022-06-24T15:31:56Z", + "pushed_at": "2022-07-09T17:51:37Z", "releases_url": "https://api.github.com/repos/practicalli/clojure-deps-edn/releases{/id}", - "size": 352, + "size": 411, "ssh_url": "git@github.com:practicalli/clojure-deps-edn.git", - "stargazers_count": 379, + "stargazers_count": 382, "stargazers_url": "https://api.github.com/repos/practicalli/clojure-deps-edn/stargazers", "statuses_url": "https://api.github.com/repos/practicalli/clojure-deps-edn/statuses/{sha}", "subscribers_count": 10, @@ -1030,14 +1275,15 @@ "deps-edn" ], "trees_url": "https://api.github.com/repos/practicalli/clojure-deps-edn/git/trees{/sha}", - "updated_at": "2022-06-24T21:45:56Z", + "updated_at": "2022-07-07T03:43:18Z", "url": "https://api.github.com/repos/practicalli/clojure-deps-edn", "visibility": "public", - "watchers": 379, - "watchers_count": 379 + "watchers": 382, + "watchers_count": 382, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/practicalli/clojure-deps-edn", - "stargazers": 379 + "stargazers": 382 }, { "info": { @@ -1062,8 +1308,8 @@ "downloads_url": "https://api.github.com/repos/KelvinTegelaar/CIPP/downloads", "events_url": "https://api.github.com/repos/KelvinTegelaar/CIPP/events", "fork": false, - "forks": 996, - "forks_count": 996, + "forks": 1055, + "forks_count": 1055, "forks_url": "https://api.github.com/repos/KelvinTegelaar/CIPP/forks", "full_name": "KelvinTegelaar/CIPP", "git_commits_url": "https://api.github.com/repos/KelvinTegelaar/CIPP/git/commits{/sha}", @@ -1098,7 +1344,7 @@ "milestones_url": "https://api.github.com/repos/KelvinTegelaar/CIPP/milestones{/number}", "mirror_url": null, "name": "CIPP", - "network_count": 996, + "network_count": 1055, "node_id": "R_kgDOGNiHEA", "notifications_url": "https://api.github.com/repos/KelvinTegelaar/CIPP/notifications{?since,all,participating}", "open_issues": 11, @@ -1125,11 +1371,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/KelvinTegelaar/CIPP/pulls{/number}", - "pushed_at": "2022-06-24T11:11:52Z", + "pushed_at": "2022-07-07T21:04:19Z", "releases_url": "https://api.github.com/repos/KelvinTegelaar/CIPP/releases{/id}", - "size": 51080, + "size": 53263, "ssh_url": "git@github.com:KelvinTegelaar/CIPP.git", - "stargazers_count": 359, + "stargazers_count": 368, "stargazers_url": "https://api.github.com/repos/KelvinTegelaar/CIPP/stargazers", "statuses_url": "https://api.github.com/repos/KelvinTegelaar/CIPP/statuses/{sha}", "subscribers_count": 21, @@ -1141,14 +1387,15 @@ "temp_clone_token": null, "topics": [], "trees_url": "https://api.github.com/repos/KelvinTegelaar/CIPP/git/trees{/sha}", - "updated_at": "2022-06-24T19:18:14Z", + "updated_at": "2022-07-09T10:35:04Z", "url": "https://api.github.com/repos/KelvinTegelaar/CIPP", "visibility": "public", - "watchers": 359, - "watchers_count": 359 + "watchers": 368, + "watchers_count": 368, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/KelvinTegelaar/CIPP", - "stargazers": 359 + "stargazers": 368 }, { "info": { @@ -1173,8 +1420,8 @@ "downloads_url": "https://api.github.com/repos/llaville/php-compatinfo/downloads", "events_url": "https://api.github.com/repos/llaville/php-compatinfo/events", "fork": false, - "forks": 19, - "forks_count": 19, + "forks": 20, + "forks_count": 20, "forks_url": "https://api.github.com/repos/llaville/php-compatinfo/forks", "full_name": "llaville/php-compatinfo", "git_commits_url": "https://api.github.com/repos/llaville/php-compatinfo/git/commits{/sha}", @@ -1209,11 +1456,11 @@ "milestones_url": "https://api.github.com/repos/llaville/php-compatinfo/milestones{/number}", "mirror_url": null, "name": "php-compatinfo", - "network_count": 19, + "network_count": 20, "node_id": "MDEwOlJlcG9zaXRvcnkxMjg0NzM0", "notifications_url": "https://api.github.com/repos/llaville/php-compatinfo/notifications{?since,all,participating}", - "open_issues": 4, - "open_issues_count": 4, + "open_issues": 6, + "open_issues_count": 6, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/364342?v=4", "events_url": "https://api.github.com/users/llaville/events{/privacy}", @@ -1236,11 +1483,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/llaville/php-compatinfo/pulls{/number}", - "pushed_at": "2022-04-07T10:55:11Z", + "pushed_at": "2022-07-09T16:28:27Z", "releases_url": "https://api.github.com/repos/llaville/php-compatinfo/releases{/id}", "size": 11033, "ssh_url": "git@github.com:llaville/php-compatinfo.git", - "stargazers_count": 356, + "stargazers_count": 357, "stargazers_url": "https://api.github.com/repos/llaville/php-compatinfo/stargazers", "statuses_url": "https://api.github.com/repos/llaville/php-compatinfo/statuses/{sha}", "subscribers_count": 16, @@ -1255,14 +1502,143 @@ "php" ], "trees_url": "https://api.github.com/repos/llaville/php-compatinfo/git/trees{/sha}", - "updated_at": "2022-05-31T00:02:54Z", + "updated_at": "2022-07-08T14:19:24Z", "url": "https://api.github.com/repos/llaville/php-compatinfo", "visibility": "public", - "watchers": 356, - "watchers_count": 356 + "watchers": 357, + "watchers_count": 357, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/llaville/php-compatinfo", - "stargazers": 356 + "stargazers": 357 + }, + { + "info": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/ruzickap/packer-templates/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/ruzickap/packer-templates/assignees{/user}", + "blobs_url": "https://api.github.com/repos/ruzickap/packer-templates/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/ruzickap/packer-templates/branches{/branch}", + "clone_url": "https://github.com/ruzickap/packer-templates.git", + "collaborators_url": "https://api.github.com/repos/ruzickap/packer-templates/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/ruzickap/packer-templates/comments{/number}", + "commits_url": "https://api.github.com/repos/ruzickap/packer-templates/commits{/sha}", + "compare_url": "https://api.github.com/repos/ruzickap/packer-templates/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/ruzickap/packer-templates/contents/{+path}", + "contributors_url": "https://api.github.com/repos/ruzickap/packer-templates/contributors", + "created_at": "2016-06-27T04:44:10Z", + "default_branch": "main", + "deployments_url": "https://api.github.com/repos/ruzickap/packer-templates/deployments", + "description": "Scripts and Templates used for generating Vagrant images", + "disabled": false, + "downloads_url": "https://api.github.com/repos/ruzickap/packer-templates/downloads", + "events_url": "https://api.github.com/repos/ruzickap/packer-templates/events", + "fork": false, + "forks": 98, + "forks_count": 98, + "forks_url": "https://api.github.com/repos/ruzickap/packer-templates/forks", + "full_name": "ruzickap/packer-templates", + "git_commits_url": "https://api.github.com/repos/ruzickap/packer-templates/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/ruzickap/packer-templates/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/ruzickap/packer-templates/git/tags{/sha}", + "git_url": "git://github.com/ruzickap/packer-templates.git", + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": false, + "has_wiki": false, + "homepage": "", + "hooks_url": "https://api.github.com/repos/ruzickap/packer-templates/hooks", + "html_url": "https://github.com/ruzickap/packer-templates", + "id": 62026075, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/ruzickap/packer-templates/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/ruzickap/packer-templates/issues/events{/number}", + "issues_url": "https://api.github.com/repos/ruzickap/packer-templates/issues{/number}", + "keys_url": "https://api.github.com/repos/ruzickap/packer-templates/keys{/key_id}", + "labels_url": "https://api.github.com/repos/ruzickap/packer-templates/labels{/name}", + "language": "Shell", + "languages_url": "https://api.github.com/repos/ruzickap/packer-templates/languages", + "license": { + "key": "apache-2.0", + "name": "Apache License 2.0", + "node_id": "MDc6TGljZW5zZTI=", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0" + }, + "merges_url": "https://api.github.com/repos/ruzickap/packer-templates/merges", + "milestones_url": "https://api.github.com/repos/ruzickap/packer-templates/milestones{/number}", + "mirror_url": null, + "name": "packer-templates", + "network_count": 98, + "node_id": "MDEwOlJlcG9zaXRvcnk2MjAyNjA3NQ==", + "notifications_url": "https://api.github.com/repos/ruzickap/packer-templates/notifications{?since,all,participating}", + "open_issues": 5, + "open_issues_count": 5, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/1434387?v=4", + "events_url": "https://api.github.com/users/ruzickap/events{/privacy}", + "followers_url": "https://api.github.com/users/ruzickap/followers", + "following_url": "https://api.github.com/users/ruzickap/following{/other_user}", + "gists_url": "https://api.github.com/users/ruzickap/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/ruzickap", + "id": 1434387, + "login": "ruzickap", + "node_id": "MDQ6VXNlcjE0MzQzODc=", + "organizations_url": "https://api.github.com/users/ruzickap/orgs", + "received_events_url": "https://api.github.com/users/ruzickap/received_events", + "repos_url": "https://api.github.com/users/ruzickap/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/ruzickap/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ruzickap/subscriptions", + "type": "User", + "url": "https://api.github.com/users/ruzickap" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/ruzickap/packer-templates/pulls{/number}", + "pushed_at": "2022-07-10T03:49:58Z", + "releases_url": "https://api.github.com/repos/ruzickap/packer-templates/releases{/id}", + "size": 1073, + "ssh_url": "git@github.com:ruzickap/packer-templates.git", + "stargazers_count": 324, + "stargazers_url": "https://api.github.com/repos/ruzickap/packer-templates/stargazers", + "statuses_url": "https://api.github.com/repos/ruzickap/packer-templates/statuses/{sha}", + "subscribers_count": 11, + "subscribers_url": "https://api.github.com/repos/ruzickap/packer-templates/subscribers", + "subscription_url": "https://api.github.com/repos/ruzickap/packer-templates/subscription", + "svn_url": "https://github.com/ruzickap/packer-templates", + "tags_url": "https://api.github.com/repos/ruzickap/packer-templates/tags", + "teams_url": "https://api.github.com/repos/ruzickap/packer-templates/teams", + "temp_clone_token": null, + "topics": [ + "ansible", + "driver", + "libvirt", + "linux", + "packer", + "packer-template", + "packer-templates", + "qemu", + "templates", + "vagrant", + "vagrant-plugin", + "vagrant-plugins", + "virtio", + "virtualbox", + "windows" + ], + "trees_url": "https://api.github.com/repos/ruzickap/packer-templates/git/trees{/sha}", + "updated_at": "2022-07-06T23:21:18Z", + "url": "https://api.github.com/repos/ruzickap/packer-templates", + "visibility": "public", + "watchers": 324, + "watchers_count": 324, + "web_commit_signoff_required": false + }, + "repo_url": "https://github.com/ruzickap/packer-templates", + "stargazers": 324 }, { "info": { @@ -1326,8 +1702,8 @@ "network_count": 19, "node_id": "MDEwOlJlcG9zaXRvcnkyODc1MDA0NTY=", "notifications_url": "https://api.github.com/repos/bjw-s/home-ops/notifications{?since,all,participating}", - "open_issues": 9, - "open_issues_count": 9, + "open_issues": 14, + "open_issues_count": 14, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/6213398?v=4", "events_url": "https://api.github.com/users/bjw-s/events{/privacy}", @@ -1350,11 +1726,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/bjw-s/home-ops/pulls{/number}", - "pushed_at": "2022-06-26T07:06:44Z", + "pushed_at": "2022-07-10T01:37:52Z", "releases_url": "https://api.github.com/repos/bjw-s/home-ops/releases{/id}", - "size": 30496, + "size": 30608, "ssh_url": "git@github.com:bjw-s/home-ops.git", - "stargazers_count": 145, + "stargazers_count": 149, "stargazers_url": "https://api.github.com/repos/bjw-s/home-ops/stargazers", "statuses_url": "https://api.github.com/repos/bjw-s/home-ops/statuses/{sha}", "subscribers_count": 1, @@ -1372,14 +1748,15 @@ "renovate" ], "trees_url": "https://api.github.com/repos/bjw-s/home-ops/git/trees{/sha}", - "updated_at": "2022-06-26T07:41:08Z", + "updated_at": "2022-07-05T18:06:44Z", "url": "https://api.github.com/repos/bjw-s/home-ops", "visibility": "public", - "watchers": 145, - "watchers_count": 145 + "watchers": 149, + "watchers_count": 149, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/bjw-s/home-ops", - "stargazers": 145 + "stargazers": 149 }, { "info": { @@ -1467,11 +1844,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/unixorn/tumult.plugin.zsh/pulls{/number}", - "pushed_at": "2022-05-21T18:33:15Z", + "pushed_at": "2022-06-29T12:14:17Z", "releases_url": "https://api.github.com/repos/unixorn/tumult.plugin.zsh/releases{/id}", - "size": 298, + "size": 303, "ssh_url": "git@github.com:unixorn/tumult.plugin.zsh.git", - "stargazers_count": 130, + "stargazers_count": 131, "stargazers_url": "https://api.github.com/repos/unixorn/tumult.plugin.zsh/stargazers", "statuses_url": "https://api.github.com/repos/unixorn/tumult.plugin.zsh/statuses/{sha}", "subscribers_count": 1, @@ -1492,14 +1869,15 @@ "zsh-plugins" ], "trees_url": "https://api.github.com/repos/unixorn/tumult.plugin.zsh/git/trees{/sha}", - "updated_at": "2022-05-28T22:02:06Z", + "updated_at": "2022-06-30T20:26:33Z", "url": "https://api.github.com/repos/unixorn/tumult.plugin.zsh", "visibility": "public", - "watchers": 130, - "watchers_count": 130 + "watchers": 131, + "watchers_count": 131, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/unixorn/tumult.plugin.zsh", - "stargazers": 130 + "stargazers": 131 }, { "info": { @@ -1563,8 +1941,8 @@ "network_count": 63, "node_id": "MDEwOlJlcG9zaXRvcnk0NjEyMjQ2MA==", "notifications_url": "https://api.github.com/repos/newrelic/newrelic-python-agent/notifications{?since,all,participating}", - "open_issues": 31, - "open_issues_count": 31, + "open_issues": 28, + "open_issues_count": 28, "organization": { "avatar_url": "https://avatars.githubusercontent.com/u/31739?v=4", "events_url": "https://api.github.com/users/newrelic/events{/privacy}", @@ -1607,14 +1985,14 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/newrelic/newrelic-python-agent/pulls{/number}", - "pushed_at": "2022-06-24T23:25:00Z", + "pushed_at": "2022-06-30T16:34:06Z", "releases_url": "https://api.github.com/repos/newrelic/newrelic-python-agent/releases{/id}", - "size": 16163, + "size": 16113, "ssh_url": "git@github.com:newrelic/newrelic-python-agent.git", "stargazers_count": 112, "stargazers_url": "https://api.github.com/repos/newrelic/newrelic-python-agent/stargazers", "statuses_url": "https://api.github.com/repos/newrelic/newrelic-python-agent/statuses/{sha}", - "subscribers_count": 9, + "subscribers_count": 10, "subscribers_url": "https://api.github.com/repos/newrelic/newrelic-python-agent/subscribers", "subscription_url": "https://api.github.com/repos/newrelic/newrelic-python-agent/subscription", "svn_url": "https://github.com/newrelic/newrelic-python-agent", @@ -1627,11 +2005,12 @@ "python" ], "trees_url": "https://api.github.com/repos/newrelic/newrelic-python-agent/git/trees{/sha}", - "updated_at": "2022-06-01T16:26:25Z", + "updated_at": "2022-07-08T11:45:12Z", "url": "https://api.github.com/repos/newrelic/newrelic-python-agent", "visibility": "public", "watchers": 112, - "watchers_count": 112 + "watchers_count": 112, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/newrelic/newrelic-python-agent", "stargazers": 112 @@ -1659,8 +2038,8 @@ "downloads_url": "https://api.github.com/repos/nvuillam/npm-groovy-lint/downloads", "events_url": "https://api.github.com/repos/nvuillam/npm-groovy-lint/events", "fork": false, - "forks": 38, - "forks_count": 38, + "forks": 40, + "forks_count": 40, "forks_url": "https://api.github.com/repos/nvuillam/npm-groovy-lint/forks", "full_name": "nvuillam/npm-groovy-lint", "git_commits_url": "https://api.github.com/repos/nvuillam/npm-groovy-lint/git/commits{/sha}", @@ -1695,11 +2074,11 @@ "milestones_url": "https://api.github.com/repos/nvuillam/npm-groovy-lint/milestones{/number}", "mirror_url": null, "name": "npm-groovy-lint", - "network_count": 38, + "network_count": 40, "node_id": "MDEwOlJlcG9zaXRvcnkyNDAyMTQ5MDA=", "notifications_url": "https://api.github.com/repos/nvuillam/npm-groovy-lint/notifications{?since,all,participating}", - "open_issues": 2, - "open_issues_count": 2, + "open_issues": 1, + "open_issues_count": 1, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/17500430?v=4", "events_url": "https://api.github.com/users/nvuillam/events{/privacy}", @@ -1722,11 +2101,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/nvuillam/npm-groovy-lint/pulls{/number}", - "pushed_at": "2022-05-28T01:42:52Z", + "pushed_at": "2022-07-07T13:38:21Z", "releases_url": "https://api.github.com/repos/nvuillam/npm-groovy-lint/releases{/id}", - "size": 68442, + "size": 68457, "ssh_url": "git@github.com:nvuillam/npm-groovy-lint.git", - "stargazers_count": 100, + "stargazers_count": 101, "stargazers_url": "https://api.github.com/repos/nvuillam/npm-groovy-lint/stargazers", "statuses_url": "https://api.github.com/repos/nvuillam/npm-groovy-lint/statuses/{sha}", "subscribers_count": 3, @@ -1746,14 +2125,15 @@ "linter" ], "trees_url": "https://api.github.com/repos/nvuillam/npm-groovy-lint/git/trees{/sha}", - "updated_at": "2022-06-08T15:24:21Z", + "updated_at": "2022-06-28T16:52:24Z", "url": "https://api.github.com/repos/nvuillam/npm-groovy-lint", "visibility": "public", - "watchers": 100, - "watchers_count": 100 + "watchers": 101, + "watchers_count": 101, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/nvuillam/npm-groovy-lint", - "stargazers": 100 + "stargazers": 101 }, { "info": { @@ -1855,11 +2235,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/practicalli/spacemacs/pulls{/number}", - "pushed_at": "2022-06-10T12:18:12Z", + "pushed_at": "2022-06-30T11:39:26Z", "releases_url": "https://api.github.com/repos/practicalli/spacemacs/releases{/id}", - "size": 63110, + "size": 63661, "ssh_url": "git@github.com:practicalli/spacemacs.git", - "stargazers_count": 85, + "stargazers_count": 87, "stargazers_url": "https://api.github.com/repos/practicalli/spacemacs/stargazers", "statuses_url": "https://api.github.com/repos/practicalli/spacemacs/statuses/{sha}", "subscribers_count": 5, @@ -1876,14 +2256,15 @@ "spacemacs" ], "trees_url": "https://api.github.com/repos/practicalli/spacemacs/git/trees{/sha}", - "updated_at": "2022-06-19T03:09:26Z", + "updated_at": "2022-07-07T21:31:41Z", "url": "https://api.github.com/repos/practicalli/spacemacs", "visibility": "public", - "watchers": 85, - "watchers_count": 85 + "watchers": 87, + "watchers_count": 87, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/practicalli/spacemacs", - "stargazers": 85 + "stargazers": 87 }, { "info": { @@ -1985,11 +2366,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/practicalli/spacemacs/pulls{/number}", - "pushed_at": "2022-06-10T12:18:12Z", + "pushed_at": "2022-06-30T11:39:26Z", "releases_url": "https://api.github.com/repos/practicalli/spacemacs/releases{/id}", - "size": 63110, + "size": 63661, "ssh_url": "git@github.com:practicalli/spacemacs.git", - "stargazers_count": 85, + "stargazers_count": 87, "stargazers_url": "https://api.github.com/repos/practicalli/spacemacs/stargazers", "statuses_url": "https://api.github.com/repos/practicalli/spacemacs/statuses/{sha}", "subscribers_count": 5, @@ -2006,63 +2387,64 @@ "spacemacs" ], "trees_url": "https://api.github.com/repos/practicalli/spacemacs/git/trees{/sha}", - "updated_at": "2022-06-19T03:09:26Z", + "updated_at": "2022-07-07T21:31:41Z", "url": "https://api.github.com/repos/practicalli/spacemacs", "visibility": "public", - "watchers": 85, - "watchers_count": 85 + "watchers": 87, + "watchers_count": 87, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/practicalli/spacemacs", - "stargazers": 85 + "stargazers": 87 }, { "info": { "allow_forking": true, - "archive_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/{archive_format}{/ref}", + "archive_url": "https://api.github.com/repos/cbg-ethz/V-pipe/{archive_format}{/ref}", "archived": false, - "assignees_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/assignees{/user}", - "blobs_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/branches{/branch}", - "clone_url": "https://github.com/oasisprotocol/oasis-wallet-web.git", - "collaborators_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/comments{/number}", - "commits_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/commits{/sha}", - "compare_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/contents/{+path}", - "contributors_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/contributors", - "created_at": "2021-04-20T00:19:38Z", + "assignees_url": "https://api.github.com/repos/cbg-ethz/V-pipe/assignees{/user}", + "blobs_url": "https://api.github.com/repos/cbg-ethz/V-pipe/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/cbg-ethz/V-pipe/branches{/branch}", + "clone_url": "https://github.com/cbg-ethz/V-pipe.git", + "collaborators_url": "https://api.github.com/repos/cbg-ethz/V-pipe/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/cbg-ethz/V-pipe/comments{/number}", + "commits_url": "https://api.github.com/repos/cbg-ethz/V-pipe/commits{/sha}", + "compare_url": "https://api.github.com/repos/cbg-ethz/V-pipe/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/cbg-ethz/V-pipe/contents/{+path}", + "contributors_url": "https://api.github.com/repos/cbg-ethz/V-pipe/contributors", + "created_at": "2017-04-10T09:01:20Z", "default_branch": "master", - "deployments_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/deployments", - "description": "The official non-custodial web wallet for the Oasis Network.", + "deployments_url": "https://api.github.com/repos/cbg-ethz/V-pipe/deployments", + "description": "V-pipe is a pipeline designed for analysing NGS data of short viral genomes", "disabled": false, - "downloads_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/downloads", - "events_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/events", + "downloads_url": "https://api.github.com/repos/cbg-ethz/V-pipe/downloads", + "events_url": "https://api.github.com/repos/cbg-ethz/V-pipe/events", "fork": false, "forks": 29, "forks_count": 29, - "forks_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/forks", - "full_name": "oasisprotocol/oasis-wallet-web", - "git_commits_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/git/tags{/sha}", - "git_url": "git://github.com/oasisprotocol/oasis-wallet-web.git", + "forks_url": "https://api.github.com/repos/cbg-ethz/V-pipe/forks", + "full_name": "cbg-ethz/V-pipe", + "git_commits_url": "https://api.github.com/repos/cbg-ethz/V-pipe/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/cbg-ethz/V-pipe/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/cbg-ethz/V-pipe/git/tags{/sha}", + "git_url": "git://github.com/cbg-ethz/V-pipe.git", "has_downloads": true, "has_issues": true, - "has_pages": false, + "has_pages": true, "has_projects": false, "has_wiki": true, - "homepage": "https://wallet.oasisprotocol.org", - "hooks_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/hooks", - "html_url": "https://github.com/oasisprotocol/oasis-wallet-web", - "id": 359634377, + "homepage": "https://cbg-ethz.github.io/V-pipe/", + "hooks_url": "https://api.github.com/repos/cbg-ethz/V-pipe/hooks", + "html_url": "https://github.com/cbg-ethz/V-pipe", + "id": 87789709, "is_template": false, - "issue_comment_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/issues/events{/number}", - "issues_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/issues{/number}", - "keys_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/keys{/key_id}", - "labels_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/labels{/name}", - "language": "TypeScript", - "languages_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/languages", + "issue_comment_url": "https://api.github.com/repos/cbg-ethz/V-pipe/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/cbg-ethz/V-pipe/issues/events{/number}", + "issues_url": "https://api.github.com/repos/cbg-ethz/V-pipe/issues{/number}", + "keys_url": "https://api.github.com/repos/cbg-ethz/V-pipe/keys{/key_id}", + "labels_url": "https://api.github.com/repos/cbg-ethz/V-pipe/labels{/name}", + "language": "HTML", + "languages_url": "https://api.github.com/repos/cbg-ethz/V-pipe/languages", "license": { "key": "apache-2.0", "name": "Apache License 2.0", @@ -2070,93 +2452,97 @@ "spdx_id": "Apache-2.0", "url": "https://api.github.com/licenses/apache-2.0" }, - "merges_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/merges", - "milestones_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/milestones{/number}", + "merges_url": "https://api.github.com/repos/cbg-ethz/V-pipe/merges", + "milestones_url": "https://api.github.com/repos/cbg-ethz/V-pipe/milestones{/number}", "mirror_url": null, - "name": "oasis-wallet-web", + "name": "V-pipe", "network_count": 29, - "node_id": "MDEwOlJlcG9zaXRvcnkzNTk2MzQzNzc=", - "notifications_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/notifications{?since,all,participating}", - "open_issues": 69, - "open_issues_count": 69, + "node_id": "MDEwOlJlcG9zaXRvcnk4Nzc4OTcwOQ==", + "notifications_url": "https://api.github.com/repos/cbg-ethz/V-pipe/notifications{?since,all,participating}", + "open_issues": 24, + "open_issues_count": 24, "organization": { - "avatar_url": "https://avatars.githubusercontent.com/u/52803776?v=4", - "events_url": "https://api.github.com/users/oasisprotocol/events{/privacy}", - "followers_url": "https://api.github.com/users/oasisprotocol/followers", - "following_url": "https://api.github.com/users/oasisprotocol/following{/other_user}", - "gists_url": "https://api.github.com/users/oasisprotocol/gists{/gist_id}", + "avatar_url": "https://avatars.githubusercontent.com/u/12068026?v=4", + "events_url": "https://api.github.com/users/cbg-ethz/events{/privacy}", + "followers_url": "https://api.github.com/users/cbg-ethz/followers", + "following_url": "https://api.github.com/users/cbg-ethz/following{/other_user}", + "gists_url": "https://api.github.com/users/cbg-ethz/gists{/gist_id}", "gravatar_id": "", - "html_url": "https://github.com/oasisprotocol", - "id": 52803776, - "login": "oasisprotocol", - "node_id": "MDEyOk9yZ2FuaXphdGlvbjUyODAzNzc2", - "organizations_url": "https://api.github.com/users/oasisprotocol/orgs", - "received_events_url": "https://api.github.com/users/oasisprotocol/received_events", - "repos_url": "https://api.github.com/users/oasisprotocol/repos", + "html_url": "https://github.com/cbg-ethz", + "id": 12068026, + "login": "cbg-ethz", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjEyMDY4MDI2", + "organizations_url": "https://api.github.com/users/cbg-ethz/orgs", + "received_events_url": "https://api.github.com/users/cbg-ethz/received_events", + "repos_url": "https://api.github.com/users/cbg-ethz/repos", "site_admin": false, - "starred_url": "https://api.github.com/users/oasisprotocol/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/oasisprotocol/subscriptions", + "starred_url": "https://api.github.com/users/cbg-ethz/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cbg-ethz/subscriptions", "type": "Organization", - "url": "https://api.github.com/users/oasisprotocol" + "url": "https://api.github.com/users/cbg-ethz" }, "owner": { - "avatar_url": "https://avatars.githubusercontent.com/u/52803776?v=4", - "events_url": "https://api.github.com/users/oasisprotocol/events{/privacy}", - "followers_url": "https://api.github.com/users/oasisprotocol/followers", - "following_url": "https://api.github.com/users/oasisprotocol/following{/other_user}", - "gists_url": "https://api.github.com/users/oasisprotocol/gists{/gist_id}", + "avatar_url": "https://avatars.githubusercontent.com/u/12068026?v=4", + "events_url": "https://api.github.com/users/cbg-ethz/events{/privacy}", + "followers_url": "https://api.github.com/users/cbg-ethz/followers", + "following_url": "https://api.github.com/users/cbg-ethz/following{/other_user}", + "gists_url": "https://api.github.com/users/cbg-ethz/gists{/gist_id}", "gravatar_id": "", - "html_url": "https://github.com/oasisprotocol", - "id": 52803776, - "login": "oasisprotocol", - "node_id": "MDEyOk9yZ2FuaXphdGlvbjUyODAzNzc2", - "organizations_url": "https://api.github.com/users/oasisprotocol/orgs", - "received_events_url": "https://api.github.com/users/oasisprotocol/received_events", - "repos_url": "https://api.github.com/users/oasisprotocol/repos", + "html_url": "https://github.com/cbg-ethz", + "id": 12068026, + "login": "cbg-ethz", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjEyMDY4MDI2", + "organizations_url": "https://api.github.com/users/cbg-ethz/orgs", + "received_events_url": "https://api.github.com/users/cbg-ethz/received_events", + "repos_url": "https://api.github.com/users/cbg-ethz/repos", "site_admin": false, - "starred_url": "https://api.github.com/users/oasisprotocol/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/oasisprotocol/subscriptions", + "starred_url": "https://api.github.com/users/cbg-ethz/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cbg-ethz/subscriptions", "type": "Organization", - "url": "https://api.github.com/users/oasisprotocol" + "url": "https://api.github.com/users/cbg-ethz" }, "private": false, - "pulls_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/pulls{/number}", - "pushed_at": "2022-06-25T00:30:11Z", - "releases_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/releases{/id}", - "size": 6615, - "ssh_url": "git@github.com:oasisprotocol/oasis-wallet-web.git", - "stargazers_count": 75, - "stargazers_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/stargazers", - "statuses_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/statuses/{sha}", - "subscribers_count": 22, - "subscribers_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/subscribers", - "subscription_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/subscription", - "svn_url": "https://github.com/oasisprotocol/oasis-wallet-web", - "tags_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/tags", - "teams_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/teams", + "pulls_url": "https://api.github.com/repos/cbg-ethz/V-pipe/pulls{/number}", + "pushed_at": "2022-07-08T08:19:52Z", + "releases_url": "https://api.github.com/repos/cbg-ethz/V-pipe/releases{/id}", + "size": 11004, + "ssh_url": "git@github.com:cbg-ethz/V-pipe.git", + "stargazers_count": 85, + "stargazers_url": "https://api.github.com/repos/cbg-ethz/V-pipe/stargazers", + "statuses_url": "https://api.github.com/repos/cbg-ethz/V-pipe/statuses/{sha}", + "subscribers_count": 7, + "subscribers_url": "https://api.github.com/repos/cbg-ethz/V-pipe/subscribers", + "subscription_url": "https://api.github.com/repos/cbg-ethz/V-pipe/subscription", + "svn_url": "https://github.com/cbg-ethz/V-pipe", + "tags_url": "https://api.github.com/repos/cbg-ethz/V-pipe/tags", + "teams_url": "https://api.github.com/repos/cbg-ethz/V-pipe/teams", "temp_clone_token": null, "topics": [ - "blockchain", - "crypto", - "delegation", - "ledger", - "non-custodial", - "oasis", - "official", - "rose", - "staking", - "wallet", - "web" + "biohackcovid20", + "biohackeu20", + "biohackeu21", + "bioinformatics", + "bioinformatics-pipeline", + "conda", + "genomics", + "hiv", + "ngs", + "sars-cov-2", + "sarscov2", + "sequencing", + "snakemake", + "virus" ], - "trees_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/git/trees{/sha}", - "updated_at": "2022-06-14T20:27:17Z", - "url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web", + "trees_url": "https://api.github.com/repos/cbg-ethz/V-pipe/git/trees{/sha}", + "updated_at": "2022-07-04T15:15:06Z", + "url": "https://api.github.com/repos/cbg-ethz/V-pipe", "visibility": "public", - "watchers": 75, - "watchers_count": 75 + "watchers": 85, + "watchers_count": 85, + "web_commit_signoff_required": false }, - "repo_url": "https://github.com/oasisprotocol/oasis-wallet-web", - "stargazers": 75 + "repo_url": "https://github.com/cbg-ethz/V-pipe", + "stargazers": 85 }, { "info": { @@ -2181,8 +2567,8 @@ "downloads_url": "https://api.github.com/repos/joeygoksu/prime-nestjs/downloads", "events_url": "https://api.github.com/repos/joeygoksu/prime-nestjs/events", "fork": false, - "forks": 10, - "forks_count": 10, + "forks": 9, + "forks_count": 9, "forks_url": "https://api.github.com/repos/joeygoksu/prime-nestjs/forks", "full_name": "joeygoksu/prime-nestjs", "git_commits_url": "https://api.github.com/repos/joeygoksu/prime-nestjs/git/commits{/sha}", @@ -2217,7 +2603,7 @@ "milestones_url": "https://api.github.com/repos/joeygoksu/prime-nestjs/milestones{/number}", "mirror_url": null, "name": "prime-nestjs", - "network_count": 10, + "network_count": 9, "node_id": "R_kgDOGHOFdw", "notifications_url": "https://api.github.com/repos/joeygoksu/prime-nestjs/notifications{?since,all,participating}", "open_issues": 7, @@ -2248,7 +2634,7 @@ "releases_url": "https://api.github.com/repos/joeygoksu/prime-nestjs/releases{/id}", "size": 995, "ssh_url": "git@github.com:joeygoksu/prime-nestjs.git", - "stargazers_count": 70, + "stargazers_count": 76, "stargazers_url": "https://api.github.com/repos/joeygoksu/prime-nestjs/stargazers", "statuses_url": "https://api.github.com/repos/joeygoksu/prime-nestjs/statuses/{sha}", "subscribers_count": 5, @@ -2269,14 +2655,159 @@ "typescript" ], "trees_url": "https://api.github.com/repos/joeygoksu/prime-nestjs/git/trees{/sha}", - "updated_at": "2022-06-25T08:40:43Z", + "updated_at": "2022-07-06T12:53:51Z", "url": "https://api.github.com/repos/joeygoksu/prime-nestjs", "visibility": "public", - "watchers": 70, - "watchers_count": 70 + "watchers": 76, + "watchers_count": 76, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/joeygoksu/prime-nestjs", - "stargazers": 70 + "stargazers": 76 + }, + { + "info": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/assignees{/user}", + "blobs_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/branches{/branch}", + "clone_url": "https://github.com/oasisprotocol/oasis-wallet-web.git", + "collaborators_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/comments{/number}", + "commits_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/commits{/sha}", + "compare_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/contents/{+path}", + "contributors_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/contributors", + "created_at": "2021-04-20T00:19:38Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/deployments", + "description": "The official non-custodial web wallet for the Oasis Network.", + "disabled": false, + "downloads_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/downloads", + "events_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/events", + "fork": false, + "forks": 29, + "forks_count": 29, + "forks_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/forks", + "full_name": "oasisprotocol/oasis-wallet-web", + "git_commits_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/git/tags{/sha}", + "git_url": "git://github.com/oasisprotocol/oasis-wallet-web.git", + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": false, + "has_wiki": true, + "homepage": "https://wallet.oasisprotocol.org", + "hooks_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/hooks", + "html_url": "https://github.com/oasisprotocol/oasis-wallet-web", + "id": 359634377, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/issues/events{/number}", + "issues_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/issues{/number}", + "keys_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/keys{/key_id}", + "labels_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/labels{/name}", + "language": "TypeScript", + "languages_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/languages", + "license": { + "key": "apache-2.0", + "name": "Apache License 2.0", + "node_id": "MDc6TGljZW5zZTI=", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0" + }, + "merges_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/merges", + "milestones_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/milestones{/number}", + "mirror_url": null, + "name": "oasis-wallet-web", + "network_count": 29, + "node_id": "MDEwOlJlcG9zaXRvcnkzNTk2MzQzNzc=", + "notifications_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/notifications{?since,all,participating}", + "open_issues": 65, + "open_issues_count": 65, + "organization": { + "avatar_url": "https://avatars.githubusercontent.com/u/52803776?v=4", + "events_url": "https://api.github.com/users/oasisprotocol/events{/privacy}", + "followers_url": "https://api.github.com/users/oasisprotocol/followers", + "following_url": "https://api.github.com/users/oasisprotocol/following{/other_user}", + "gists_url": "https://api.github.com/users/oasisprotocol/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/oasisprotocol", + "id": 52803776, + "login": "oasisprotocol", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUyODAzNzc2", + "organizations_url": "https://api.github.com/users/oasisprotocol/orgs", + "received_events_url": "https://api.github.com/users/oasisprotocol/received_events", + "repos_url": "https://api.github.com/users/oasisprotocol/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/oasisprotocol/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/oasisprotocol/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/oasisprotocol" + }, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/52803776?v=4", + "events_url": "https://api.github.com/users/oasisprotocol/events{/privacy}", + "followers_url": "https://api.github.com/users/oasisprotocol/followers", + "following_url": "https://api.github.com/users/oasisprotocol/following{/other_user}", + "gists_url": "https://api.github.com/users/oasisprotocol/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/oasisprotocol", + "id": 52803776, + "login": "oasisprotocol", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjUyODAzNzc2", + "organizations_url": "https://api.github.com/users/oasisprotocol/orgs", + "received_events_url": "https://api.github.com/users/oasisprotocol/received_events", + "repos_url": "https://api.github.com/users/oasisprotocol/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/oasisprotocol/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/oasisprotocol/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/oasisprotocol" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/pulls{/number}", + "pushed_at": "2022-07-08T21:28:41Z", + "releases_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/releases{/id}", + "size": 6891, + "ssh_url": "git@github.com:oasisprotocol/oasis-wallet-web.git", + "stargazers_count": 74, + "stargazers_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/stargazers", + "statuses_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/statuses/{sha}", + "subscribers_count": 22, + "subscribers_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/subscribers", + "subscription_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/subscription", + "svn_url": "https://github.com/oasisprotocol/oasis-wallet-web", + "tags_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/tags", + "teams_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/teams", + "temp_clone_token": null, + "topics": [ + "blockchain", + "crypto", + "delegation", + "ledger", + "non-custodial", + "oasis", + "official", + "rose", + "staking", + "wallet", + "web" + ], + "trees_url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web/git/trees{/sha}", + "updated_at": "2022-07-09T22:10:39Z", + "url": "https://api.github.com/repos/oasisprotocol/oasis-wallet-web", + "visibility": "public", + "watchers": 74, + "watchers_count": 74, + "web_commit_signoff_required": false + }, + "repo_url": "https://github.com/oasisprotocol/oasis-wallet-web", + "stargazers": 74 }, { "info": { @@ -2340,8 +2871,8 @@ "network_count": 15, "node_id": "MDEwOlJlcG9zaXRvcnk3NTAwMDQ0Ng==", "notifications_url": "https://api.github.com/repos/rasa/scoops/notifications{?since,all,participating}", - "open_issues": 6, - "open_issues_count": 6, + "open_issues": 8, + "open_issues_count": 8, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/220772?v=4", "events_url": "https://api.github.com/users/rasa/events{/privacy}", @@ -2364,9 +2895,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/rasa/scoops/pulls{/number}", - "pushed_at": "2022-06-04T21:21:33Z", + "pushed_at": "2022-07-09T08:14:25Z", "releases_url": "https://api.github.com/repos/rasa/scoops/releases{/id}", - "size": 739, + "size": 786, "ssh_url": "git@github.com:rasa/scoops.git", "stargazers_count": 65, "stargazers_url": "https://api.github.com/repos/rasa/scoops/stargazers", @@ -2391,7 +2922,8 @@ "url": "https://api.github.com/repos/rasa/scoops", "visibility": "public", "watchers": 65, - "watchers_count": 65 + "watchers_count": 65, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/rasa/scoops", "stargazers": 65 @@ -2399,144 +2931,134 @@ { "info": { "allow_forking": true, - "archive_url": "https://api.github.com/repos/philips-software/embeddedinfralib/{archive_format}{/ref}", + "archive_url": "https://api.github.com/repos/Azure/ARO-RP/{archive_format}{/ref}", "archived": false, - "assignees_url": "https://api.github.com/repos/philips-software/embeddedinfralib/assignees{/user}", - "blobs_url": "https://api.github.com/repos/philips-software/embeddedinfralib/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/philips-software/embeddedinfralib/branches{/branch}", - "clone_url": "https://github.com/philips-software/embeddedinfralib.git", - "collaborators_url": "https://api.github.com/repos/philips-software/embeddedinfralib/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/philips-software/embeddedinfralib/comments{/number}", - "commits_url": "https://api.github.com/repos/philips-software/embeddedinfralib/commits{/sha}", - "compare_url": "https://api.github.com/repos/philips-software/embeddedinfralib/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/philips-software/embeddedinfralib/contents/{+path}", - "contributors_url": "https://api.github.com/repos/philips-software/embeddedinfralib/contributors", - "created_at": "2019-03-22T14:27:21Z", - "default_branch": "develop", - "deployments_url": "https://api.github.com/repos/philips-software/embeddedinfralib/deployments", - "description": "EmbeddedInfraLib is a set of C++ libraries and headers that provide heap-less, STL like, infrastructure for embedded software development.", + "assignees_url": "https://api.github.com/repos/Azure/ARO-RP/assignees{/user}", + "blobs_url": "https://api.github.com/repos/Azure/ARO-RP/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/Azure/ARO-RP/branches{/branch}", + "clone_url": "https://github.com/Azure/ARO-RP.git", + "collaborators_url": "https://api.github.com/repos/Azure/ARO-RP/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/Azure/ARO-RP/comments{/number}", + "commits_url": "https://api.github.com/repos/Azure/ARO-RP/commits{/sha}", + "compare_url": "https://api.github.com/repos/Azure/ARO-RP/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/Azure/ARO-RP/contents/{+path}", + "contributors_url": "https://api.github.com/repos/Azure/ARO-RP/contributors", + "created_at": "2019-11-29T15:27:53Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/Azure/ARO-RP/deployments", + "description": "Azure Red Hat OpenShift RP", "disabled": false, - "downloads_url": "https://api.github.com/repos/philips-software/embeddedinfralib/downloads", - "events_url": "https://api.github.com/repos/philips-software/embeddedinfralib/events", + "downloads_url": "https://api.github.com/repos/Azure/ARO-RP/downloads", + "events_url": "https://api.github.com/repos/Azure/ARO-RP/events", "fork": false, - "forks": 18, - "forks_count": 18, - "forks_url": "https://api.github.com/repos/philips-software/embeddedinfralib/forks", - "full_name": "philips-software/embeddedinfralib", - "git_commits_url": "https://api.github.com/repos/philips-software/embeddedinfralib/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/philips-software/embeddedinfralib/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/philips-software/embeddedinfralib/git/tags{/sha}", - "git_url": "git://github.com/philips-software/embeddedinfralib.git", + "forks": 107, + "forks_count": 107, + "forks_url": "https://api.github.com/repos/Azure/ARO-RP/forks", + "full_name": "Azure/ARO-RP", + "git_commits_url": "https://api.github.com/repos/Azure/ARO-RP/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/Azure/ARO-RP/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/Azure/ARO-RP/git/tags{/sha}", + "git_url": "git://github.com/Azure/ARO-RP.git", "has_downloads": true, "has_issues": true, - "has_pages": true, - "has_projects": true, - "has_wiki": true, - "homepage": "", - "hooks_url": "https://api.github.com/repos/philips-software/embeddedinfralib/hooks", - "html_url": "https://github.com/philips-software/embeddedinfralib", - "id": 177154737, + "has_pages": false, + "has_projects": false, + "has_wiki": false, + "homepage": null, + "hooks_url": "https://api.github.com/repos/Azure/ARO-RP/hooks", + "html_url": "https://github.com/Azure/ARO-RP", + "id": 224878780, "is_template": false, - "issue_comment_url": "https://api.github.com/repos/philips-software/embeddedinfralib/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/philips-software/embeddedinfralib/issues/events{/number}", - "issues_url": "https://api.github.com/repos/philips-software/embeddedinfralib/issues{/number}", - "keys_url": "https://api.github.com/repos/philips-software/embeddedinfralib/keys{/key_id}", - "labels_url": "https://api.github.com/repos/philips-software/embeddedinfralib/labels{/name}", - "language": "C++", - "languages_url": "https://api.github.com/repos/philips-software/embeddedinfralib/languages", + "issue_comment_url": "https://api.github.com/repos/Azure/ARO-RP/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/Azure/ARO-RP/issues/events{/number}", + "issues_url": "https://api.github.com/repos/Azure/ARO-RP/issues{/number}", + "keys_url": "https://api.github.com/repos/Azure/ARO-RP/keys{/key_id}", + "labels_url": "https://api.github.com/repos/Azure/ARO-RP/labels{/name}", + "language": "Go", + "languages_url": "https://api.github.com/repos/Azure/ARO-RP/languages", "license": { - "key": "other", - "name": "Other", - "node_id": "MDc6TGljZW5zZTA=", - "spdx_id": "NOASSERTION", - "url": null + "key": "apache-2.0", + "name": "Apache License 2.0", + "node_id": "MDc6TGljZW5zZTI=", + "spdx_id": "Apache-2.0", + "url": "https://api.github.com/licenses/apache-2.0" }, - "merges_url": "https://api.github.com/repos/philips-software/embeddedinfralib/merges", - "milestones_url": "https://api.github.com/repos/philips-software/embeddedinfralib/milestones{/number}", + "merges_url": "https://api.github.com/repos/Azure/ARO-RP/merges", + "milestones_url": "https://api.github.com/repos/Azure/ARO-RP/milestones{/number}", "mirror_url": null, - "name": "embeddedinfralib", - "network_count": 18, - "node_id": "MDEwOlJlcG9zaXRvcnkxNzcxNTQ3Mzc=", - "notifications_url": "https://api.github.com/repos/philips-software/embeddedinfralib/notifications{?since,all,participating}", - "open_issues": 4, - "open_issues_count": 4, + "name": "ARO-RP", + "network_count": 107, + "node_id": "MDEwOlJlcG9zaXRvcnkyMjQ4Nzg3ODA=", + "notifications_url": "https://api.github.com/repos/Azure/ARO-RP/notifications{?since,all,participating}", + "open_issues": 155, + "open_issues_count": 155, "organization": { - "avatar_url": "https://avatars.githubusercontent.com/u/39734771?v=4", - "events_url": "https://api.github.com/users/philips-software/events{/privacy}", - "followers_url": "https://api.github.com/users/philips-software/followers", - "following_url": "https://api.github.com/users/philips-software/following{/other_user}", - "gists_url": "https://api.github.com/users/philips-software/gists{/gist_id}", + "avatar_url": "https://avatars.githubusercontent.com/u/6844498?v=4", + "events_url": "https://api.github.com/users/Azure/events{/privacy}", + "followers_url": "https://api.github.com/users/Azure/followers", + "following_url": "https://api.github.com/users/Azure/following{/other_user}", + "gists_url": "https://api.github.com/users/Azure/gists{/gist_id}", "gravatar_id": "", - "html_url": "https://github.com/philips-software", - "id": 39734771, - "login": "philips-software", - "node_id": "MDEyOk9yZ2FuaXphdGlvbjM5NzM0Nzcx", - "organizations_url": "https://api.github.com/users/philips-software/orgs", - "received_events_url": "https://api.github.com/users/philips-software/received_events", - "repos_url": "https://api.github.com/users/philips-software/repos", + "html_url": "https://github.com/Azure", + "id": 6844498, + "login": "Azure", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4NDQ0OTg=", + "organizations_url": "https://api.github.com/users/Azure/orgs", + "received_events_url": "https://api.github.com/users/Azure/received_events", + "repos_url": "https://api.github.com/users/Azure/repos", "site_admin": false, - "starred_url": "https://api.github.com/users/philips-software/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/philips-software/subscriptions", + "starred_url": "https://api.github.com/users/Azure/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Azure/subscriptions", "type": "Organization", - "url": "https://api.github.com/users/philips-software" + "url": "https://api.github.com/users/Azure" }, "owner": { - "avatar_url": "https://avatars.githubusercontent.com/u/39734771?v=4", - "events_url": "https://api.github.com/users/philips-software/events{/privacy}", - "followers_url": "https://api.github.com/users/philips-software/followers", - "following_url": "https://api.github.com/users/philips-software/following{/other_user}", - "gists_url": "https://api.github.com/users/philips-software/gists{/gist_id}", + "avatar_url": "https://avatars.githubusercontent.com/u/6844498?v=4", + "events_url": "https://api.github.com/users/Azure/events{/privacy}", + "followers_url": "https://api.github.com/users/Azure/followers", + "following_url": "https://api.github.com/users/Azure/following{/other_user}", + "gists_url": "https://api.github.com/users/Azure/gists{/gist_id}", "gravatar_id": "", - "html_url": "https://github.com/philips-software", - "id": 39734771, - "login": "philips-software", - "node_id": "MDEyOk9yZ2FuaXphdGlvbjM5NzM0Nzcx", - "organizations_url": "https://api.github.com/users/philips-software/orgs", - "received_events_url": "https://api.github.com/users/philips-software/received_events", - "repos_url": "https://api.github.com/users/philips-software/repos", + "html_url": "https://github.com/Azure", + "id": 6844498, + "login": "Azure", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY4NDQ0OTg=", + "organizations_url": "https://api.github.com/users/Azure/orgs", + "received_events_url": "https://api.github.com/users/Azure/received_events", + "repos_url": "https://api.github.com/users/Azure/repos", "site_admin": false, - "starred_url": "https://api.github.com/users/philips-software/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/philips-software/subscriptions", + "starred_url": "https://api.github.com/users/Azure/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Azure/subscriptions", "type": "Organization", - "url": "https://api.github.com/users/philips-software" + "url": "https://api.github.com/users/Azure" }, "private": false, - "pulls_url": "https://api.github.com/repos/philips-software/embeddedinfralib/pulls{/number}", - "pushed_at": "2022-06-23T17:19:03Z", - "releases_url": "https://api.github.com/repos/philips-software/embeddedinfralib/releases{/id}", - "size": 28921, - "ssh_url": "git@github.com:philips-software/embeddedinfralib.git", - "stargazers_count": 52, - "stargazers_url": "https://api.github.com/repos/philips-software/embeddedinfralib/stargazers", - "statuses_url": "https://api.github.com/repos/philips-software/embeddedinfralib/statuses/{sha}", - "subscribers_count": 13, - "subscribers_url": "https://api.github.com/repos/philips-software/embeddedinfralib/subscribers", - "subscription_url": "https://api.github.com/repos/philips-software/embeddedinfralib/subscription", - "svn_url": "https://github.com/philips-software/embeddedinfralib", - "tags_url": "https://api.github.com/repos/philips-software/embeddedinfralib/tags", - "teams_url": "https://api.github.com/repos/philips-software/embeddedinfralib/teams", + "pulls_url": "https://api.github.com/repos/Azure/ARO-RP/pulls{/number}", + "pushed_at": "2022-07-09T20:14:04Z", + "releases_url": "https://api.github.com/repos/Azure/ARO-RP/releases{/id}", + "size": 67472, + "ssh_url": "git@github.com:Azure/ARO-RP.git", + "stargazers_count": 63, + "stargazers_url": "https://api.github.com/repos/Azure/ARO-RP/stargazers", + "statuses_url": "https://api.github.com/repos/Azure/ARO-RP/statuses/{sha}", + "subscribers_count": 35, + "subscribers_url": "https://api.github.com/repos/Azure/ARO-RP/subscribers", + "subscription_url": "https://api.github.com/repos/Azure/ARO-RP/subscription", + "svn_url": "https://github.com/Azure/ARO-RP", + "tags_url": "https://api.github.com/repos/Azure/ARO-RP/tags", + "teams_url": "https://api.github.com/repos/Azure/ARO-RP/teams", "temp_clone_token": null, - "topics": [ - "c-plus-plus", - "cpp", - "cpp11", - "embedded", - "embedded-systems", - "infra", - "infrastructure", - "iot", - "iot-device", - "iot-firmware" - ], - "trees_url": "https://api.github.com/repos/philips-software/embeddedinfralib/git/trees{/sha}", - "updated_at": "2022-06-22T11:03:40Z", - "url": "https://api.github.com/repos/philips-software/embeddedinfralib", + "topics": [], + "trees_url": "https://api.github.com/repos/Azure/ARO-RP/git/trees{/sha}", + "updated_at": "2022-07-06T23:26:40Z", + "url": "https://api.github.com/repos/Azure/ARO-RP", "visibility": "public", - "watchers": 52, - "watchers_count": 52 + "watchers": 63, + "watchers_count": 63, + "web_commit_signoff_required": false }, - "repo_url": "https://github.com/philips-software/embeddedinfralib", - "stargazers": 52 + "repo_url": "https://github.com/Azure/ARO-RP", + "stargazers": 63 }, { "info": { @@ -2628,7 +3150,7 @@ "releases_url": "https://api.github.com/repos/unixorn/lima-xbar-plugin/releases{/id}", "size": 260, "ssh_url": "git@github.com:unixorn/lima-xbar-plugin.git", - "stargazers_count": 51, + "stargazers_count": 53, "stargazers_url": "https://api.github.com/repos/unixorn/lima-xbar-plugin/stargazers", "statuses_url": "https://api.github.com/repos/unixorn/lima-xbar-plugin/statuses/{sha}", "subscribers_count": 2, @@ -2649,14 +3171,158 @@ "xbar-plugin" ], "trees_url": "https://api.github.com/repos/unixorn/lima-xbar-plugin/git/trees{/sha}", - "updated_at": "2022-06-11T16:46:01Z", + "updated_at": "2022-07-08T15:13:30Z", "url": "https://api.github.com/repos/unixorn/lima-xbar-plugin", "visibility": "public", - "watchers": 51, - "watchers_count": 51 + "watchers": 53, + "watchers_count": 53, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/unixorn/lima-xbar-plugin", - "stargazers": 51 + "stargazers": 53 + }, + { + "info": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/philips-software/embeddedinfralib/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/philips-software/embeddedinfralib/assignees{/user}", + "blobs_url": "https://api.github.com/repos/philips-software/embeddedinfralib/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/philips-software/embeddedinfralib/branches{/branch}", + "clone_url": "https://github.com/philips-software/embeddedinfralib.git", + "collaborators_url": "https://api.github.com/repos/philips-software/embeddedinfralib/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/philips-software/embeddedinfralib/comments{/number}", + "commits_url": "https://api.github.com/repos/philips-software/embeddedinfralib/commits{/sha}", + "compare_url": "https://api.github.com/repos/philips-software/embeddedinfralib/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/philips-software/embeddedinfralib/contents/{+path}", + "contributors_url": "https://api.github.com/repos/philips-software/embeddedinfralib/contributors", + "created_at": "2019-03-22T14:27:21Z", + "default_branch": "develop", + "deployments_url": "https://api.github.com/repos/philips-software/embeddedinfralib/deployments", + "description": "EmbeddedInfraLib is a set of C++ libraries and headers that provide heap-less, STL like, infrastructure for embedded software development.", + "disabled": false, + "downloads_url": "https://api.github.com/repos/philips-software/embeddedinfralib/downloads", + "events_url": "https://api.github.com/repos/philips-software/embeddedinfralib/events", + "fork": false, + "forks": 19, + "forks_count": 19, + "forks_url": "https://api.github.com/repos/philips-software/embeddedinfralib/forks", + "full_name": "philips-software/embeddedinfralib", + "git_commits_url": "https://api.github.com/repos/philips-software/embeddedinfralib/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/philips-software/embeddedinfralib/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/philips-software/embeddedinfralib/git/tags{/sha}", + "git_url": "git://github.com/philips-software/embeddedinfralib.git", + "has_downloads": true, + "has_issues": true, + "has_pages": true, + "has_projects": true, + "has_wiki": true, + "homepage": "", + "hooks_url": "https://api.github.com/repos/philips-software/embeddedinfralib/hooks", + "html_url": "https://github.com/philips-software/embeddedinfralib", + "id": 177154737, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/philips-software/embeddedinfralib/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/philips-software/embeddedinfralib/issues/events{/number}", + "issues_url": "https://api.github.com/repos/philips-software/embeddedinfralib/issues{/number}", + "keys_url": "https://api.github.com/repos/philips-software/embeddedinfralib/keys{/key_id}", + "labels_url": "https://api.github.com/repos/philips-software/embeddedinfralib/labels{/name}", + "language": "C++", + "languages_url": "https://api.github.com/repos/philips-software/embeddedinfralib/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/philips-software/embeddedinfralib/merges", + "milestones_url": "https://api.github.com/repos/philips-software/embeddedinfralib/milestones{/number}", + "mirror_url": null, + "name": "embeddedinfralib", + "network_count": 19, + "node_id": "MDEwOlJlcG9zaXRvcnkxNzcxNTQ3Mzc=", + "notifications_url": "https://api.github.com/repos/philips-software/embeddedinfralib/notifications{?since,all,participating}", + "open_issues": 6, + "open_issues_count": 6, + "organization": { + "avatar_url": "https://avatars.githubusercontent.com/u/39734771?v=4", + "events_url": "https://api.github.com/users/philips-software/events{/privacy}", + "followers_url": "https://api.github.com/users/philips-software/followers", + "following_url": "https://api.github.com/users/philips-software/following{/other_user}", + "gists_url": "https://api.github.com/users/philips-software/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/philips-software", + "id": 39734771, + "login": "philips-software", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM5NzM0Nzcx", + "organizations_url": "https://api.github.com/users/philips-software/orgs", + "received_events_url": "https://api.github.com/users/philips-software/received_events", + "repos_url": "https://api.github.com/users/philips-software/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/philips-software/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/philips-software/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/philips-software" + }, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/39734771?v=4", + "events_url": "https://api.github.com/users/philips-software/events{/privacy}", + "followers_url": "https://api.github.com/users/philips-software/followers", + "following_url": "https://api.github.com/users/philips-software/following{/other_user}", + "gists_url": "https://api.github.com/users/philips-software/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/philips-software", + "id": 39734771, + "login": "philips-software", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjM5NzM0Nzcx", + "organizations_url": "https://api.github.com/users/philips-software/orgs", + "received_events_url": "https://api.github.com/users/philips-software/received_events", + "repos_url": "https://api.github.com/users/philips-software/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/philips-software/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/philips-software/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/philips-software" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/philips-software/embeddedinfralib/pulls{/number}", + "pushed_at": "2022-07-09T14:26:57Z", + "releases_url": "https://api.github.com/repos/philips-software/embeddedinfralib/releases{/id}", + "size": 28947, + "ssh_url": "git@github.com:philips-software/embeddedinfralib.git", + "stargazers_count": 53, + "stargazers_url": "https://api.github.com/repos/philips-software/embeddedinfralib/stargazers", + "statuses_url": "https://api.github.com/repos/philips-software/embeddedinfralib/statuses/{sha}", + "subscribers_count": 13, + "subscribers_url": "https://api.github.com/repos/philips-software/embeddedinfralib/subscribers", + "subscription_url": "https://api.github.com/repos/philips-software/embeddedinfralib/subscription", + "svn_url": "https://github.com/philips-software/embeddedinfralib", + "tags_url": "https://api.github.com/repos/philips-software/embeddedinfralib/tags", + "teams_url": "https://api.github.com/repos/philips-software/embeddedinfralib/teams", + "temp_clone_token": null, + "topics": [ + "c-plus-plus", + "cpp", + "cpp11", + "embedded", + "embedded-systems", + "infra", + "infrastructure", + "iot", + "iot-device", + "iot-firmware" + ], + "trees_url": "https://api.github.com/repos/philips-software/embeddedinfralib/git/trees{/sha}", + "updated_at": "2022-07-09T20:41:34Z", + "url": "https://api.github.com/repos/philips-software/embeddedinfralib", + "visibility": "public", + "watchers": 53, + "watchers_count": 53, + "web_commit_signoff_required": false + }, + "repo_url": "https://github.com/philips-software/embeddedinfralib", + "stargazers": 53 }, { "info": { @@ -2767,7 +3433,8 @@ "url": "https://api.github.com/repos/llaville/umlwriter", "visibility": "public", "watchers": 45, - "watchers_count": 45 + "watchers_count": 45, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/llaville/umlwriter", "stargazers": 45 @@ -2883,7 +3550,8 @@ "url": "https://api.github.com/repos/nvuillam/sfdx-essentials", "visibility": "public", "watchers": 41, - "watchers_count": 41 + "watchers_count": 41, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/nvuillam/sfdx-essentials", "stargazers": 41 @@ -2911,8 +3579,8 @@ "downloads_url": "https://api.github.com/repos/practicalli/clojure/downloads", "events_url": "https://api.github.com/repos/practicalli/clojure/events", "fork": false, - "forks": 19, - "forks_count": 19, + "forks": 20, + "forks_count": 20, "forks_url": "https://api.github.com/repos/practicalli/clojure/forks", "full_name": "practicalli/clojure", "git_commits_url": "https://api.github.com/repos/practicalli/clojure/git/commits{/sha}", @@ -2941,11 +3609,11 @@ "milestones_url": "https://api.github.com/repos/practicalli/clojure/milestones{/number}", "mirror_url": null, "name": "clojure", - "network_count": 19, + "network_count": 20, "node_id": "MDEwOlJlcG9zaXRvcnk1NzI2MjkxNQ==", "notifications_url": "https://api.github.com/repos/practicalli/clojure/notifications{?since,all,participating}", - "open_issues": 361, - "open_issues_count": 361, + "open_issues": 362, + "open_issues_count": 362, "organization": { "avatar_url": "https://avatars.githubusercontent.com/u/8628530?v=4", "events_url": "https://api.github.com/users/practicalli/events{/privacy}", @@ -2988,7 +3656,7 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/practicalli/clojure/pulls{/number}", - "pushed_at": "2022-05-26T13:49:32Z", + "pushed_at": "2022-06-27T16:03:10Z", "releases_url": "https://api.github.com/repos/practicalli/clojure/releases{/id}", "size": 47067, "ssh_url": "git@github.com:practicalli/clojure.git", @@ -3014,7 +3682,8 @@ "url": "https://api.github.com/repos/practicalli/clojure", "visibility": "public", "watchers": 41, - "watchers_count": 41 + "watchers_count": 41, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/practicalli/clojure", "stargazers": 41 @@ -3081,8 +3750,8 @@ "network_count": 30, "node_id": "MDEwOlJlcG9zaXRvcnkzMjg3NDQwNzU=", "notifications_url": "https://api.github.com/repos/catthehacker/docker_images/notifications{?since,all,participating}", - "open_issues": 6, - "open_issues_count": 6, + "open_issues": 7, + "open_issues_count": 7, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/31106839?v=4", "events_url": "https://api.github.com/users/catthehacker/events{/privacy}", @@ -3105,11 +3774,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/catthehacker/docker_images/pulls{/number}", - "pushed_at": "2022-06-01T14:37:49Z", + "pushed_at": "2022-07-01T05:02:09Z", "releases_url": "https://api.github.com/repos/catthehacker/docker_images/releases{/id}", - "size": 100, + "size": 102, "ssh_url": "git@github.com:catthehacker/docker_images.git", - "stargazers_count": 37, + "stargazers_count": 38, "stargazers_url": "https://api.github.com/repos/catthehacker/docker_images/stargazers", "statuses_url": "https://api.github.com/repos/catthehacker/docker_images/statuses/{sha}", "subscribers_count": 5, @@ -3121,14 +3790,127 @@ "temp_clone_token": null, "topics": [], "trees_url": "https://api.github.com/repos/catthehacker/docker_images/git/trees{/sha}", - "updated_at": "2022-06-12T06:58:25Z", + "updated_at": "2022-07-10T02:25:04Z", "url": "https://api.github.com/repos/catthehacker/docker_images", "visibility": "public", - "watchers": 37, - "watchers_count": 37 + "watchers": 38, + "watchers_count": 38, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/catthehacker/docker_images", - "stargazers": 37 + "stargazers": 38 + }, + { + "info": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/assignees{/user}", + "blobs_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/branches{/branch}", + "clone_url": "https://github.com/meichthys/foss_photo_libraries.git", + "collaborators_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/comments{/number}", + "commits_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/commits{/sha}", + "compare_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/contents/{+path}", + "contributors_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/contributors", + "created_at": "2022-06-25T18:07:49Z", + "default_branch": "main", + "deployments_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/deployments", + "description": "Free and Open Source Photo Libraries", + "disabled": false, + "downloads_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/downloads", + "events_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/events", + "fork": false, + "forks": 1, + "forks_count": 1, + "forks_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/forks", + "full_name": "meichthys/foss_photo_libraries", + "git_commits_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/git/tags{/sha}", + "git_url": "git://github.com/meichthys/foss_photo_libraries.git", + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": null, + "hooks_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/hooks", + "html_url": "https://github.com/meichthys/foss_photo_libraries", + "id": 507383783, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/issues/events{/number}", + "issues_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/issues{/number}", + "keys_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/keys{/key_id}", + "labels_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/labels{/name}", + "language": null, + "languages_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/languages", + "license": { + "key": "mit", + "name": "MIT License", + "node_id": "MDc6TGljZW5zZTEz", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit" + }, + "merges_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/merges", + "milestones_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/milestones{/number}", + "mirror_url": null, + "name": "foss_photo_libraries", + "network_count": 1, + "node_id": "R_kgDOHj4P5w", + "notifications_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/notifications{?since,all,participating}", + "open_issues": 7, + "open_issues_count": 7, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/10717998?v=4", + "events_url": "https://api.github.com/users/meichthys/events{/privacy}", + "followers_url": "https://api.github.com/users/meichthys/followers", + "following_url": "https://api.github.com/users/meichthys/following{/other_user}", + "gists_url": "https://api.github.com/users/meichthys/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/meichthys", + "id": 10717998, + "login": "meichthys", + "node_id": "MDQ6VXNlcjEwNzE3OTk4", + "organizations_url": "https://api.github.com/users/meichthys/orgs", + "received_events_url": "https://api.github.com/users/meichthys/received_events", + "repos_url": "https://api.github.com/users/meichthys/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/meichthys/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/meichthys/subscriptions", + "type": "User", + "url": "https://api.github.com/users/meichthys" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/pulls{/number}", + "pushed_at": "2022-07-07T04:37:45Z", + "releases_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/releases{/id}", + "size": 35, + "ssh_url": "git@github.com:meichthys/foss_photo_libraries.git", + "stargazers_count": 36, + "stargazers_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/stargazers", + "statuses_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/statuses/{sha}", + "subscribers_count": 4, + "subscribers_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/subscribers", + "subscription_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/subscription", + "svn_url": "https://github.com/meichthys/foss_photo_libraries", + "tags_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/tags", + "teams_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/teams", + "temp_clone_token": null, + "topics": [], + "trees_url": "https://api.github.com/repos/meichthys/foss_photo_libraries/git/trees{/sha}", + "updated_at": "2022-07-10T09:34:06Z", + "url": "https://api.github.com/repos/meichthys/foss_photo_libraries", + "visibility": "public", + "watchers": 36, + "watchers_count": 36, + "web_commit_signoff_required": false + }, + "repo_url": "https://github.com/meichthys/foss_photo_libraries", + "stargazers": 36 }, { "info": { @@ -3236,7 +4018,8 @@ "url": "https://api.github.com/repos/AlbanAndrieu/ansible-windows", "visibility": "public", "watchers": 31, - "watchers_count": 31 + "watchers_count": 31, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/AlbanAndrieu/ansible-windows", "stargazers": 31 @@ -3347,7 +4130,8 @@ "url": "https://api.github.com/repos/quackduck/secret", "visibility": "public", "watchers": 31, - "watchers_count": 31 + "watchers_count": 31, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/quackduck/secret", "stargazers": 31 @@ -3414,8 +4198,8 @@ "network_count": 42, "node_id": "MDEwOlJlcG9zaXRvcnkxMDAyMTQ2Nw==", "notifications_url": "https://api.github.com/repos/MythicDrops/MythicDrops/notifications{?since,all,participating}", - "open_issues": 57, - "open_issues_count": 57, + "open_issues": 59, + "open_issues_count": 59, "organization": { "avatar_url": "https://avatars.githubusercontent.com/u/78941662?v=4", "events_url": "https://api.github.com/users/MythicDrops/events{/privacy}", @@ -3458,9 +4242,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/MythicDrops/MythicDrops/pulls{/number}", - "pushed_at": "2022-06-24T22:16:34Z", + "pushed_at": "2022-07-04T15:19:16Z", "releases_url": "https://api.github.com/repos/MythicDrops/MythicDrops/releases{/id}", - "size": 10312, + "size": 10314, "ssh_url": "git@github.com:MythicDrops/MythicDrops.git", "stargazers_count": 28, "stargazers_url": "https://api.github.com/repos/MythicDrops/MythicDrops/stargazers", @@ -3485,7 +4269,8 @@ "url": "https://api.github.com/repos/MythicDrops/MythicDrops", "visibility": "public", "watchers": 28, - "watchers_count": 28 + "watchers_count": 28, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/MythicDrops/MythicDrops", "stargazers": 28 @@ -3552,8 +4337,8 @@ "network_count": 8, "node_id": "MDEwOlJlcG9zaXRvcnkzMzI5MDU3MDI=", "notifications_url": "https://api.github.com/repos/hardisgroupcom/sfdx-hardis/notifications{?since,all,participating}", - "open_issues": 9, - "open_issues_count": 9, + "open_issues": 7, + "open_issues_count": 7, "organization": { "avatar_url": "https://avatars.githubusercontent.com/u/22538326?v=4", "events_url": "https://api.github.com/users/hardisgroupcom/events{/privacy}", @@ -3596,9 +4381,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/hardisgroupcom/sfdx-hardis/pulls{/number}", - "pushed_at": "2022-06-24T16:12:46Z", + "pushed_at": "2022-07-07T15:55:58Z", "releases_url": "https://api.github.com/repos/hardisgroupcom/sfdx-hardis/releases{/id}", - "size": 5986, + "size": 5742, "ssh_url": "git@github.com:hardisgroupcom/sfdx-hardis.git", "stargazers_count": 27, "stargazers_url": "https://api.github.com/repos/hardisgroupcom/sfdx-hardis/stargazers", @@ -3625,7 +4410,8 @@ "url": "https://api.github.com/repos/hardisgroupcom/sfdx-hardis", "visibility": "public", "watchers": 27, - "watchers_count": 27 + "watchers_count": 27, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/hardisgroupcom/sfdx-hardis", "stargazers": 27 @@ -3692,8 +4478,8 @@ "network_count": 1, "node_id": "MDEwOlJlcG9zaXRvcnkzOTE3NjkwNDE=", "notifications_url": "https://api.github.com/repos/jr0dd/home-ops/notifications{?since,all,participating}", - "open_issues": 3, - "open_issues_count": 3, + "open_issues": 2, + "open_issues_count": 2, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/285797?v=4", "events_url": "https://api.github.com/users/jr0dd/events{/privacy}", @@ -3716,9 +4502,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/jr0dd/home-ops/pulls{/number}", - "pushed_at": "2022-06-26T07:27:08Z", + "pushed_at": "2022-07-10T08:21:24Z", "releases_url": "https://api.github.com/repos/jr0dd/home-ops/releases{/id}", - "size": 4714, + "size": 4901, "ssh_url": "git@github.com:jr0dd/home-ops.git", "stargazers_count": 25, "stargazers_url": "https://api.github.com/repos/jr0dd/home-ops/stargazers", @@ -3745,7 +4531,8 @@ "url": "https://api.github.com/repos/jr0dd/home-ops", "visibility": "public", "watchers": 25, - "watchers_count": 25 + "watchers_count": 25, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/jr0dd/home-ops", "stargazers": 25 @@ -3812,8 +4599,8 @@ "network_count": 10, "node_id": "MDEwOlJlcG9zaXRvcnkzNDc3NzIyMzQ=", "notifications_url": "https://api.github.com/repos/GrandMoff100/HomeAssistantAPI/notifications{?since,all,participating}", - "open_issues": 5, - "open_issues_count": 5, + "open_issues": 0, + "open_issues_count": 0, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/51765903?v=4", "events_url": "https://api.github.com/users/GrandMoff100/events{/privacy}", @@ -3836,9 +4623,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/GrandMoff100/HomeAssistantAPI/pulls{/number}", - "pushed_at": "2022-06-25T22:41:08Z", + "pushed_at": "2022-07-07T13:23:26Z", "releases_url": "https://api.github.com/repos/GrandMoff100/HomeAssistantAPI/releases{/id}", - "size": 786, + "size": 1721, "ssh_url": "git@github.com:GrandMoff100/HomeAssistantAPI.git", "stargazers_count": 21, "stargazers_url": "https://api.github.com/repos/GrandMoff100/HomeAssistantAPI/stargazers", @@ -3868,7 +4655,8 @@ "url": "https://api.github.com/repos/GrandMoff100/HomeAssistantAPI", "visibility": "public", "watchers": 21, - "watchers_count": 21 + "watchers_count": 21, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/GrandMoff100/HomeAssistantAPI", "stargazers": 21 @@ -3959,9 +4747,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/rwaltr/infra/pulls{/number}", - "pushed_at": "2022-06-17T22:37:48Z", + "pushed_at": "2022-06-27T22:39:09Z", "releases_url": "https://api.github.com/repos/rwaltr/infra/releases{/id}", - "size": 1591, + "size": 1590, "ssh_url": "git@github.com:rwaltr/infra.git", "stargazers_count": 19, "stargazers_url": "https://api.github.com/repos/rwaltr/infra/stargazers", @@ -3988,7 +4776,8 @@ "url": "https://api.github.com/repos/rwaltr/infra", "visibility": "public", "watchers": 19, - "watchers_count": 19 + "watchers_count": 19, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/rwaltr/infra", "stargazers": 19 @@ -4127,7 +4916,8 @@ "url": "https://api.github.com/repos/hardisgroupcom/vscode-sfdx-hardis", "visibility": "public", "watchers": 16, - "watchers_count": 16 + "watchers_count": 16, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/hardisgroupcom/vscode-sfdx-hardis", "stargazers": 16 @@ -4262,7 +5052,8 @@ "url": "https://api.github.com/repos/svt/open-source-project-template", "visibility": "public", "watchers": 14, - "watchers_count": 14 + "watchers_count": 14, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/svt/open-source-project-template", "stargazers": 14 @@ -4323,8 +5114,8 @@ "network_count": 4, "node_id": "MDEwOlJlcG9zaXRvcnkzNjM5OTQ2ODM=", "notifications_url": "https://api.github.com/repos/GSA/usagov-benefits-eligibility/notifications{?since,all,participating}", - "open_issues": 56, - "open_issues_count": 56, + "open_issues": 50, + "open_issues_count": 50, "organization": { "avatar_url": "https://avatars.githubusercontent.com/u/643070?v=4", "events_url": "https://api.github.com/users/GSA/events{/privacy}", @@ -4367,9 +5158,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/GSA/usagov-benefits-eligibility/pulls{/number}", - "pushed_at": "2022-06-24T19:57:12Z", + "pushed_at": "2022-07-08T21:31:17Z", "releases_url": "https://api.github.com/repos/GSA/usagov-benefits-eligibility/releases{/id}", - "size": 6483, + "size": 6787, "ssh_url": "git@github.com:GSA/usagov-benefits-eligibility.git", "stargazers_count": 14, "stargazers_url": "https://api.github.com/repos/GSA/usagov-benefits-eligibility/stargazers", @@ -4387,7 +5178,8 @@ "url": "https://api.github.com/repos/GSA/usagov-benefits-eligibility", "visibility": "public", "watchers": 14, - "watchers_count": 14 + "watchers_count": 14, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/GSA/usagov-benefits-eligibility", "stargazers": 14 @@ -4410,7 +5202,7 @@ "created_at": "2021-07-04T13:49:12Z", "default_branch": "main", "deployments_url": "https://api.github.com/repos/0dragosh/homelab/deployments", - "description": "GitOps managed k3s homelab on Intel NUCs with FluxCD & Cloudflare Access", + "description": "GitOps managed homelab with FluxCD & Cloudflare Access", "disabled": false, "downloads_url": "https://api.github.com/repos/0dragosh/homelab/downloads", "events_url": "https://api.github.com/repos/0dragosh/homelab/events", @@ -4448,8 +5240,8 @@ "network_count": 0, "node_id": "MDEwOlJlcG9zaXRvcnkzODI4NjMyOTE=", "notifications_url": "https://api.github.com/repos/0dragosh/homelab/notifications{?since,all,participating}", - "open_issues": 2, - "open_issues_count": 2, + "open_issues": 13, + "open_issues_count": 13, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/39906742?v=4", "events_url": "https://api.github.com/users/0dragosh/events{/privacy}", @@ -4472,9 +5264,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/0dragosh/homelab/pulls{/number}", - "pushed_at": "2022-06-26T09:27:29Z", + "pushed_at": "2022-07-10T09:39:31Z", "releases_url": "https://api.github.com/repos/0dragosh/homelab/releases{/id}", - "size": 3122, + "size": 3300, "ssh_url": "git@github.com:0dragosh/homelab.git", "stargazers_count": 14, "stargazers_url": "https://api.github.com/repos/0dragosh/homelab/stargazers", @@ -4501,11 +5293,12 @@ "sonarr" ], "trees_url": "https://api.github.com/repos/0dragosh/homelab/git/trees{/sha}", - "updated_at": "2022-06-10T12:42:34Z", + "updated_at": "2022-06-28T12:29:03Z", "url": "https://api.github.com/repos/0dragosh/homelab", "visibility": "public", "watchers": 14, - "watchers_count": 14 + "watchers_count": 14, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/0dragosh/homelab-k3s", "stargazers": 14 @@ -4630,7 +5423,8 @@ "url": "https://api.github.com/repos/practicalli/clojurescript", "visibility": "public", "watchers": 13, - "watchers_count": 13 + "watchers_count": 13, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/practicalli/clojurescript", "stargazers": 13 @@ -4747,7 +5541,8 @@ "url": "https://api.github.com/repos/quackduck/ncis", "visibility": "public", "watchers": 11, - "watchers_count": 11 + "watchers_count": 11, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/quackduck/ncis", "stargazers": 11 @@ -4838,7 +5633,7 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/jokay/docker-ccu-historian/pulls{/number}", - "pushed_at": "2022-06-23T11:58:01Z", + "pushed_at": "2022-06-26T18:02:13Z", "releases_url": "https://api.github.com/repos/jokay/docker-ccu-historian/releases{/id}", "size": 225, "ssh_url": "git@github.com:jokay/docker-ccu-historian.git", @@ -4868,7 +5663,8 @@ "url": "https://api.github.com/repos/jokay/docker-ccu-historian", "visibility": "public", "watchers": 11, - "watchers_count": 11 + "watchers_count": 11, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/jokay/docker-ccu-historian", "stargazers": 11 @@ -4983,7 +5779,8 @@ "url": "https://api.github.com/repos/llaville/php-compatinfo-db", "visibility": "public", "watchers": 10, - "watchers_count": 10 + "watchers_count": 10, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/llaville/php-compatinfo-db", "stargazers": 10 @@ -5119,7 +5916,8 @@ "url": "https://api.github.com/repos/wareismymind/peer", "visibility": "public", "watchers": 10, - "watchers_count": 10 + "watchers_count": 10, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/wareismymind/peer", "stargazers": 10 @@ -5147,8 +5945,8 @@ "downloads_url": "https://api.github.com/repos/Amplitude-Developer-Docs/amplitude-dev-center/downloads", "events_url": "https://api.github.com/repos/Amplitude-Developer-Docs/amplitude-dev-center/events", "fork": false, - "forks": 11, - "forks_count": 11, + "forks": 12, + "forks_count": 12, "forks_url": "https://api.github.com/repos/Amplitude-Developer-Docs/amplitude-dev-center/forks", "full_name": "Amplitude-Developer-Docs/amplitude-dev-center", "git_commits_url": "https://api.github.com/repos/Amplitude-Developer-Docs/amplitude-dev-center/git/commits{/sha}", @@ -5183,11 +5981,11 @@ "milestones_url": "https://api.github.com/repos/Amplitude-Developer-Docs/amplitude-dev-center/milestones{/number}", "mirror_url": null, "name": "amplitude-dev-center", - "network_count": 11, + "network_count": 12, "node_id": "R_kgDOGurdfg", "notifications_url": "https://api.github.com/repos/Amplitude-Developer-Docs/amplitude-dev-center/notifications{?since,all,participating}", - "open_issues": 4, - "open_issues_count": 4, + "open_issues": 3, + "open_issues_count": 3, "organization": { "avatar_url": "https://avatars.githubusercontent.com/u/100628252?v=4", "events_url": "https://api.github.com/users/Amplitude-Developer-Docs/events{/privacy}", @@ -5230,14 +6028,14 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/Amplitude-Developer-Docs/amplitude-dev-center/pulls{/number}", - "pushed_at": "2022-06-24T23:19:32Z", + "pushed_at": "2022-07-01T19:39:41Z", "releases_url": "https://api.github.com/repos/Amplitude-Developer-Docs/amplitude-dev-center/releases{/id}", - "size": 10522, + "size": 10570, "ssh_url": "git@github.com:Amplitude-Developer-Docs/amplitude-dev-center.git", "stargazers_count": 10, "stargazers_url": "https://api.github.com/repos/Amplitude-Developer-Docs/amplitude-dev-center/stargazers", "statuses_url": "https://api.github.com/repos/Amplitude-Developer-Docs/amplitude-dev-center/statuses/{sha}", - "subscribers_count": 11, + "subscribers_count": 13, "subscribers_url": "https://api.github.com/repos/Amplitude-Developer-Docs/amplitude-dev-center/subscribers", "subscription_url": "https://api.github.com/repos/Amplitude-Developer-Docs/amplitude-dev-center/subscription", "svn_url": "https://github.com/Amplitude-Developer-Docs/amplitude-dev-center", @@ -5250,11 +6048,124 @@ "url": "https://api.github.com/repos/Amplitude-Developer-Docs/amplitude-dev-center", "visibility": "public", "watchers": 10, - "watchers_count": 10 + "watchers_count": 10, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/Amplitude-Developer-Docs/amplitude-dev-center", "stargazers": 10 }, + { + "info": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/AErmie/DevSecOps/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/AErmie/DevSecOps/assignees{/user}", + "blobs_url": "https://api.github.com/repos/AErmie/DevSecOps/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/AErmie/DevSecOps/branches{/branch}", + "clone_url": "https://github.com/AErmie/DevSecOps.git", + "collaborators_url": "https://api.github.com/repos/AErmie/DevSecOps/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/AErmie/DevSecOps/comments{/number}", + "commits_url": "https://api.github.com/repos/AErmie/DevSecOps/commits{/sha}", + "compare_url": "https://api.github.com/repos/AErmie/DevSecOps/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/AErmie/DevSecOps/contents/{+path}", + "contributors_url": "https://api.github.com/repos/AErmie/DevSecOps/contributors", + "created_at": "2021-02-22T12:47:07Z", + "default_branch": "main", + "deployments_url": "https://api.github.com/repos/AErmie/DevSecOps/deployments", + "description": "A repo for testing and demonstration purposes. ", + "disabled": false, + "downloads_url": "https://api.github.com/repos/AErmie/DevSecOps/downloads", + "events_url": "https://api.github.com/repos/AErmie/DevSecOps/events", + "fork": false, + "forks": 8, + "forks_count": 8, + "forks_url": "https://api.github.com/repos/AErmie/DevSecOps/forks", + "full_name": "AErmie/DevSecOps", + "git_commits_url": "https://api.github.com/repos/AErmie/DevSecOps/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/AErmie/DevSecOps/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/AErmie/DevSecOps/git/tags{/sha}", + "git_url": "git://github.com/AErmie/DevSecOps.git", + "has_downloads": true, + "has_issues": true, + "has_pages": true, + "has_projects": true, + "has_wiki": true, + "homepage": null, + "hooks_url": "https://api.github.com/repos/AErmie/DevSecOps/hooks", + "html_url": "https://github.com/AErmie/DevSecOps", + "id": 341198103, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/AErmie/DevSecOps/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/AErmie/DevSecOps/issues/events{/number}", + "issues_url": "https://api.github.com/repos/AErmie/DevSecOps/issues{/number}", + "keys_url": "https://api.github.com/repos/AErmie/DevSecOps/keys{/key_id}", + "labels_url": "https://api.github.com/repos/AErmie/DevSecOps/labels{/name}", + "language": "Bicep", + "languages_url": "https://api.github.com/repos/AErmie/DevSecOps/languages", + "license": { + "key": "mit", + "name": "MIT License", + "node_id": "MDc6TGljZW5zZTEz", + "spdx_id": "MIT", + "url": "https://api.github.com/licenses/mit" + }, + "merges_url": "https://api.github.com/repos/AErmie/DevSecOps/merges", + "milestones_url": "https://api.github.com/repos/AErmie/DevSecOps/milestones{/number}", + "mirror_url": null, + "name": "DevSecOps", + "network_count": 8, + "node_id": "MDEwOlJlcG9zaXRvcnkzNDExOTgxMDM=", + "notifications_url": "https://api.github.com/repos/AErmie/DevSecOps/notifications{?since,all,participating}", + "open_issues": 6, + "open_issues_count": 6, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/10376796?v=4", + "events_url": "https://api.github.com/users/AErmie/events{/privacy}", + "followers_url": "https://api.github.com/users/AErmie/followers", + "following_url": "https://api.github.com/users/AErmie/following{/other_user}", + "gists_url": "https://api.github.com/users/AErmie/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/AErmie", + "id": 10376796, + "login": "AErmie", + "node_id": "MDQ6VXNlcjEwMzc2Nzk2", + "organizations_url": "https://api.github.com/users/AErmie/orgs", + "received_events_url": "https://api.github.com/users/AErmie/received_events", + "repos_url": "https://api.github.com/users/AErmie/repos", + "site_admin": true, + "starred_url": "https://api.github.com/users/AErmie/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/AErmie/subscriptions", + "type": "User", + "url": "https://api.github.com/users/AErmie" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/AErmie/DevSecOps/pulls{/number}", + "pushed_at": "2022-06-23T01:56:31Z", + "releases_url": "https://api.github.com/repos/AErmie/DevSecOps/releases{/id}", + "size": 14664, + "ssh_url": "git@github.com:AErmie/DevSecOps.git", + "stargazers_count": 10, + "stargazers_url": "https://api.github.com/repos/AErmie/DevSecOps/stargazers", + "statuses_url": "https://api.github.com/repos/AErmie/DevSecOps/statuses/{sha}", + "subscribers_count": 3, + "subscribers_url": "https://api.github.com/repos/AErmie/DevSecOps/subscribers", + "subscription_url": "https://api.github.com/repos/AErmie/DevSecOps/subscription", + "svn_url": "https://github.com/AErmie/DevSecOps", + "tags_url": "https://api.github.com/repos/AErmie/DevSecOps/tags", + "teams_url": "https://api.github.com/repos/AErmie/DevSecOps/teams", + "temp_clone_token": null, + "topics": [], + "trees_url": "https://api.github.com/repos/AErmie/DevSecOps/git/trees{/sha}", + "updated_at": "2022-06-28T17:35:28Z", + "url": "https://api.github.com/repos/AErmie/DevSecOps", + "visibility": "public", + "watchers": 10, + "watchers_count": 10, + "web_commit_signoff_required": false + }, + "repo_url": "https://github.com/AErmie/DevSecOps", + "stargazers": 10 + }, { "info": { "allow_forking": true, @@ -5361,9 +6272,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/ScribeMD/rootless-docker/pulls{/number}", - "pushed_at": "2022-06-26T06:55:47Z", + "pushed_at": "2022-07-10T09:00:15Z", "releases_url": "https://api.github.com/repos/ScribeMD/rootless-docker/releases{/id}", - "size": 79, + "size": 80, "ssh_url": "git@github.com:ScribeMD/rootless-docker.git", "stargazers_count": 9, "stargazers_url": "https://api.github.com/repos/ScribeMD/rootless-docker/stargazers", @@ -5394,7 +6305,8 @@ "url": "https://api.github.com/repos/ScribeMD/rootless-docker", "visibility": "public", "watchers": 9, - "watchers_count": 9 + "watchers_count": 9, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/ScribeMD/rootless-docker", "stargazers": 9 @@ -5461,8 +6373,8 @@ "network_count": 0, "node_id": "R_kgDOGJnRzQ", "notifications_url": "https://api.github.com/repos/ScribeMD/slack-templates/notifications{?since,all,participating}", - "open_issues": 2, - "open_issues_count": 2, + "open_issues": 1, + "open_issues_count": 1, "organization": { "avatar_url": "https://avatars.githubusercontent.com/u/78177662?v=4", "events_url": "https://api.github.com/users/ScribeMD/events{/privacy}", @@ -5505,9 +6417,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/ScribeMD/slack-templates/pulls{/number}", - "pushed_at": "2022-06-26T07:26:05Z", + "pushed_at": "2022-07-10T06:54:03Z", "releases_url": "https://api.github.com/repos/ScribeMD/slack-templates/releases{/id}", - "size": 158, + "size": 217, "ssh_url": "git@github.com:ScribeMD/slack-templates.git", "stargazers_count": 8, "stargazers_url": "https://api.github.com/repos/ScribeMD/slack-templates/stargazers", @@ -5541,7 +6453,8 @@ "url": "https://api.github.com/repos/ScribeMD/slack-templates", "visibility": "public", "watchers": 8, - "watchers_count": 8 + "watchers_count": 8, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/ScribeMD/slack-templates", "stargazers": 8 @@ -5569,8 +6482,8 @@ "downloads_url": "https://api.github.com/repos/AliceO2Group/O2Physics/downloads", "events_url": "https://api.github.com/repos/AliceO2Group/O2Physics/events", "fork": false, - "forks": 150, - "forks_count": 150, + "forks": 158, + "forks_count": 158, "forks_url": "https://api.github.com/repos/AliceO2Group/O2Physics/forks", "full_name": "AliceO2Group/O2Physics", "git_commits_url": "https://api.github.com/repos/AliceO2Group/O2Physics/git/commits{/sha}", @@ -5605,11 +6518,11 @@ "milestones_url": "https://api.github.com/repos/AliceO2Group/O2Physics/milestones{/number}", "mirror_url": null, "name": "O2Physics", - "network_count": 150, + "network_count": 158, "node_id": "MDEwOlJlcG9zaXRvcnkzODU5NTg0MTY=", "notifications_url": "https://api.github.com/repos/AliceO2Group/O2Physics/notifications{?since,all,participating}", - "open_issues": 8, - "open_issues_count": 8, + "open_issues": 12, + "open_issues_count": 12, "organization": { "avatar_url": "https://avatars.githubusercontent.com/u/9053140?v=4", "events_url": "https://api.github.com/users/AliceO2Group/events{/privacy}", @@ -5652,9 +6565,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/AliceO2Group/O2Physics/pulls{/number}", - "pushed_at": "2022-06-26T11:31:43Z", + "pushed_at": "2022-07-10T00:02:01Z", "releases_url": "https://api.github.com/repos/AliceO2Group/O2Physics/releases{/id}", - "size": 7051, + "size": 7322, "ssh_url": "git@github.com:AliceO2Group/O2Physics.git", "stargazers_count": 8, "stargazers_url": "https://api.github.com/repos/AliceO2Group/O2Physics/stargazers", @@ -5668,126 +6581,16 @@ "temp_clone_token": null, "topics": [], "trees_url": "https://api.github.com/repos/AliceO2Group/O2Physics/git/trees{/sha}", - "updated_at": "2022-06-21T05:52:32Z", + "updated_at": "2022-07-02T08:59:59Z", "url": "https://api.github.com/repos/AliceO2Group/O2Physics", "visibility": "public", "watchers": 8, - "watchers_count": 8 + "watchers_count": 8, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/AliceO2Group/O2Physics", "stargazers": 8 }, - { - "info": { - "allow_forking": true, - "archive_url": "https://api.github.com/repos/AErmie/DevSecOps/{archive_format}{/ref}", - "archived": false, - "assignees_url": "https://api.github.com/repos/AErmie/DevSecOps/assignees{/user}", - "blobs_url": "https://api.github.com/repos/AErmie/DevSecOps/git/blobs{/sha}", - "branches_url": "https://api.github.com/repos/AErmie/DevSecOps/branches{/branch}", - "clone_url": "https://github.com/AErmie/DevSecOps.git", - "collaborators_url": "https://api.github.com/repos/AErmie/DevSecOps/collaborators{/collaborator}", - "comments_url": "https://api.github.com/repos/AErmie/DevSecOps/comments{/number}", - "commits_url": "https://api.github.com/repos/AErmie/DevSecOps/commits{/sha}", - "compare_url": "https://api.github.com/repos/AErmie/DevSecOps/compare/{base}...{head}", - "contents_url": "https://api.github.com/repos/AErmie/DevSecOps/contents/{+path}", - "contributors_url": "https://api.github.com/repos/AErmie/DevSecOps/contributors", - "created_at": "2021-02-22T12:47:07Z", - "default_branch": "main", - "deployments_url": "https://api.github.com/repos/AErmie/DevSecOps/deployments", - "description": "A repo for testing and demonstration purposes. ", - "disabled": false, - "downloads_url": "https://api.github.com/repos/AErmie/DevSecOps/downloads", - "events_url": "https://api.github.com/repos/AErmie/DevSecOps/events", - "fork": false, - "forks": 6, - "forks_count": 6, - "forks_url": "https://api.github.com/repos/AErmie/DevSecOps/forks", - "full_name": "AErmie/DevSecOps", - "git_commits_url": "https://api.github.com/repos/AErmie/DevSecOps/git/commits{/sha}", - "git_refs_url": "https://api.github.com/repos/AErmie/DevSecOps/git/refs{/sha}", - "git_tags_url": "https://api.github.com/repos/AErmie/DevSecOps/git/tags{/sha}", - "git_url": "git://github.com/AErmie/DevSecOps.git", - "has_downloads": true, - "has_issues": true, - "has_pages": true, - "has_projects": true, - "has_wiki": true, - "homepage": null, - "hooks_url": "https://api.github.com/repos/AErmie/DevSecOps/hooks", - "html_url": "https://github.com/AErmie/DevSecOps", - "id": 341198103, - "is_template": false, - "issue_comment_url": "https://api.github.com/repos/AErmie/DevSecOps/issues/comments{/number}", - "issue_events_url": "https://api.github.com/repos/AErmie/DevSecOps/issues/events{/number}", - "issues_url": "https://api.github.com/repos/AErmie/DevSecOps/issues{/number}", - "keys_url": "https://api.github.com/repos/AErmie/DevSecOps/keys{/key_id}", - "labels_url": "https://api.github.com/repos/AErmie/DevSecOps/labels{/name}", - "language": "Bicep", - "languages_url": "https://api.github.com/repos/AErmie/DevSecOps/languages", - "license": { - "key": "mit", - "name": "MIT License", - "node_id": "MDc6TGljZW5zZTEz", - "spdx_id": "MIT", - "url": "https://api.github.com/licenses/mit" - }, - "merges_url": "https://api.github.com/repos/AErmie/DevSecOps/merges", - "milestones_url": "https://api.github.com/repos/AErmie/DevSecOps/milestones{/number}", - "mirror_url": null, - "name": "DevSecOps", - "network_count": 6, - "node_id": "MDEwOlJlcG9zaXRvcnkzNDExOTgxMDM=", - "notifications_url": "https://api.github.com/repos/AErmie/DevSecOps/notifications{?since,all,participating}", - "open_issues": 6, - "open_issues_count": 6, - "owner": { - "avatar_url": "https://avatars.githubusercontent.com/u/10376796?v=4", - "events_url": "https://api.github.com/users/AErmie/events{/privacy}", - "followers_url": "https://api.github.com/users/AErmie/followers", - "following_url": "https://api.github.com/users/AErmie/following{/other_user}", - "gists_url": "https://api.github.com/users/AErmie/gists{/gist_id}", - "gravatar_id": "", - "html_url": "https://github.com/AErmie", - "id": 10376796, - "login": "AErmie", - "node_id": "MDQ6VXNlcjEwMzc2Nzk2", - "organizations_url": "https://api.github.com/users/AErmie/orgs", - "received_events_url": "https://api.github.com/users/AErmie/received_events", - "repos_url": "https://api.github.com/users/AErmie/repos", - "site_admin": true, - "starred_url": "https://api.github.com/users/AErmie/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/AErmie/subscriptions", - "type": "User", - "url": "https://api.github.com/users/AErmie" - }, - "private": false, - "pulls_url": "https://api.github.com/repos/AErmie/DevSecOps/pulls{/number}", - "pushed_at": "2022-06-23T01:56:31Z", - "releases_url": "https://api.github.com/repos/AErmie/DevSecOps/releases{/id}", - "size": 14664, - "ssh_url": "git@github.com:AErmie/DevSecOps.git", - "stargazers_count": 8, - "stargazers_url": "https://api.github.com/repos/AErmie/DevSecOps/stargazers", - "statuses_url": "https://api.github.com/repos/AErmie/DevSecOps/statuses/{sha}", - "subscribers_count": 3, - "subscribers_url": "https://api.github.com/repos/AErmie/DevSecOps/subscribers", - "subscription_url": "https://api.github.com/repos/AErmie/DevSecOps/subscription", - "svn_url": "https://github.com/AErmie/DevSecOps", - "tags_url": "https://api.github.com/repos/AErmie/DevSecOps/tags", - "teams_url": "https://api.github.com/repos/AErmie/DevSecOps/teams", - "temp_clone_token": null, - "topics": [], - "trees_url": "https://api.github.com/repos/AErmie/DevSecOps/git/trees{/sha}", - "updated_at": "2022-06-23T13:31:11Z", - "url": "https://api.github.com/repos/AErmie/DevSecOps", - "visibility": "public", - "watchers": 8, - "watchers_count": 8 - }, - "repo_url": "https://github.com/AErmie/DevSecOps", - "stargazers": 8 - }, { "info": { "allow_forking": true, @@ -5844,8 +6647,8 @@ "network_count": 4, "node_id": "MDEwOlJlcG9zaXRvcnkzMDA3NjE4MzU=", "notifications_url": "https://api.github.com/repos/GSA/site-scanning-engine/notifications{?since,all,participating}", - "open_issues": 6, - "open_issues_count": 6, + "open_issues": 5, + "open_issues_count": 5, "organization": { "avatar_url": "https://avatars.githubusercontent.com/u/643070?v=4", "events_url": "https://api.github.com/users/GSA/events{/privacy}", @@ -5888,9 +6691,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/GSA/site-scanning-engine/pulls{/number}", - "pushed_at": "2022-06-24T16:59:37Z", + "pushed_at": "2022-07-05T18:35:28Z", "releases_url": "https://api.github.com/repos/GSA/site-scanning-engine/releases{/id}", - "size": 8054, + "size": 8155, "ssh_url": "git@github.com:GSA/site-scanning-engine.git", "stargazers_count": 7, "stargazers_url": "https://api.github.com/repos/GSA/site-scanning-engine/stargazers", @@ -5908,7 +6711,8 @@ "url": "https://api.github.com/repos/GSA/site-scanning-engine", "visibility": "public", "watchers": 7, - "watchers_count": 7 + "watchers_count": 7, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/GSA/site-scanning-engine", "stargazers": 7 @@ -6044,7 +6848,8 @@ "url": "https://api.github.com/repos/curedao/docs", "visibility": "public", "watchers": 7, - "watchers_count": 7 + "watchers_count": 7, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/cure-dao/docs", "stargazers": 7 @@ -6176,7 +6981,8 @@ "url": "https://api.github.com/repos/practicalli/clojure-web-services", "visibility": "public", "watchers": 7, - "watchers_count": 7 + "watchers_count": 7, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/practicalli/clojure-web-services", "stargazers": 7 @@ -6294,7 +7100,8 @@ "url": "https://api.github.com/repos/nvuillam/njre", "visibility": "public", "watchers": 7, - "watchers_count": 7 + "watchers_count": 7, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/nvuillam/njre", "stargazers": 7 @@ -6405,7 +7212,8 @@ "url": "https://api.github.com/repos/nvuillam/markdown-table-formatter", "visibility": "public", "watchers": 7, - "watchers_count": 7 + "watchers_count": 7, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/nvuillam/markdown-table-formatter", "stargazers": 7 @@ -6516,9 +7324,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/QuantumPL/bib/pulls{/number}", - "pushed_at": "2022-06-16T15:53:53Z", + "pushed_at": "2022-07-07T20:58:07Z", "releases_url": "https://api.github.com/repos/QuantumPL/bib/releases{/id}", - "size": 10448, + "size": 10934, "ssh_url": "git@github.com:QuantumPL/bib.git", "stargazers_count": 7, "stargazers_url": "https://api.github.com/repos/QuantumPL/bib/stargazers", @@ -6542,7 +7350,8 @@ "url": "https://api.github.com/repos/QuantumPL/bib", "visibility": "public", "watchers": 7, - "watchers_count": 7 + "watchers_count": 7, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/QuantumPL/bib", "stargazers": 7 @@ -6653,7 +7462,8 @@ "url": "https://api.github.com/repos/dochang/bumplus", "visibility": "public", "watchers": 6, - "watchers_count": 6 + "watchers_count": 6, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/dochang/bumplus", "stargazers": 6 @@ -6778,7 +7588,8 @@ "url": "https://api.github.com/repos/ADFC-Hamburg/adfc-ansible", "visibility": "public", "watchers": 6, - "watchers_count": 6 + "watchers_count": 6, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/ADFC-Hamburg/adfc-ansible", "stargazers": 6 @@ -6869,9 +7680,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/jokay/docker-prune/pulls{/number}", - "pushed_at": "2022-06-23T04:38:24Z", + "pushed_at": "2022-06-28T03:17:19Z", "releases_url": "https://api.github.com/repos/jokay/docker-prune/releases{/id}", - "size": 170, + "size": 171, "ssh_url": "git@github.com:jokay/docker-prune.git", "stargazers_count": 6, "stargazers_url": "https://api.github.com/repos/jokay/docker-prune/stargazers", @@ -6895,7 +7706,8 @@ "url": "https://api.github.com/repos/jokay/docker-prune", "visibility": "public", "watchers": 6, - "watchers_count": 6 + "watchers_count": 6, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/jokay/docker-prune", "stargazers": 6 @@ -6962,8 +7774,8 @@ "network_count": 0, "node_id": "MDEwOlJlcG9zaXRvcnkxMTcyODQ0MDY=", "notifications_url": "https://api.github.com/repos/theodore-s-beers/muqawwim/notifications{?since,all,participating}", - "open_issues": 0, - "open_issues_count": 0, + "open_issues": 5, + "open_issues_count": 5, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/32523293?v=4", "events_url": "https://api.github.com/users/theodore-s-beers/events{/privacy}", @@ -6986,9 +7798,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/theodore-s-beers/muqawwim/pulls{/number}", - "pushed_at": "2022-06-14T18:21:33Z", + "pushed_at": "2022-07-01T18:02:08Z", "releases_url": "https://api.github.com/repos/theodore-s-beers/muqawwim/releases{/id}", - "size": 11196, + "size": 11579, "ssh_url": "git@github.com:theodore-s-beers/muqawwim.git", "stargazers_count": 5, "stargazers_url": "https://api.github.com/repos/theodore-s-beers/muqawwim/stargazers", @@ -7006,7 +7818,8 @@ "url": "https://api.github.com/repos/theodore-s-beers/muqawwim", "visibility": "public", "watchers": 5, - "watchers_count": 5 + "watchers_count": 5, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/theodore-s-beers/muqawwim", "stargazers": 5 @@ -7097,9 +7910,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/AlbanAndrieu/jenkins-pipeline-scripts/pulls{/number}", - "pushed_at": "2022-06-20T06:18:17Z", + "pushed_at": "2022-07-04T06:19:26Z", "releases_url": "https://api.github.com/repos/AlbanAndrieu/jenkins-pipeline-scripts/releases{/id}", - "size": 1094, + "size": 1261, "ssh_url": "git@github.com:AlbanAndrieu/jenkins-pipeline-scripts.git", "stargazers_count": 5, "stargazers_url": "https://api.github.com/repos/AlbanAndrieu/jenkins-pipeline-scripts/stargazers", @@ -7117,7 +7930,8 @@ "url": "https://api.github.com/repos/AlbanAndrieu/jenkins-pipeline-scripts", "visibility": "public", "watchers": 5, - "watchers_count": 5 + "watchers_count": 5, + "web_commit_signoff_required": false }, "repo_url": "https://github.com/AlbanAndrieu/jenkins-pipeline-scripts", "stargazers": 5 @@ -7208,9 +8022,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/tusharshahrs/pulumi-home/pulls{/number}", - "pushed_at": "2022-06-06T14:34:33Z", + "pushed_at": "2022-06-24T20:45:32Z", "releases_url": "https://api.github.com/repos/tusharshahrs/pulumi-home/releases{/id}", - "size": 36398, + "size": 36415, "ssh_url": "git@github.com:tusharshahrs/pulumi-home.git", "stargazers_count": 5, "stargazers_url": "https://api.github.com/repos/tusharshahrs/pulumi-home/stargazers", diff --git a/.automation/test/credentials/bad/.gitleaks.toml b/.automation/test/credentials/bad/.gitleaks.toml new file mode 100644 index 00000000000..b8f98fd1380 --- /dev/null +++ b/.automation/test/credentials/bad/.gitleaks.toml @@ -0,0 +1,178 @@ + +title = "gitleaks config" + +[[rules]] + description = "AWS Access Key" + regex = '''(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}''' + tags = ["key", "AWS"] + +[[rules]] + description = "AWS Secret Key" + regex = '''(?i)aws(.{0,20})?(?-i)['\"][0-9a-zA-Z\/+]{40}['\"]''' + tags = ["key", "AWS"] + +[[rules]] + description = "AWS MWS key" + regex = '''amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}''' + tags = ["key", "AWS", "MWS"] + +[[rules]] + description = "Facebook Secret Key" + regex = '''(?i)(facebook|fb)(.{0,20})?(?-i)['\"][0-9a-f]{32}['\"]''' + tags = ["key", "Facebook"] + +[[rules]] + description = "Facebook Client ID" + regex = '''(?i)(facebook|fb)(.{0,20})?['\"][0-9]{13,17}['\"]''' + tags = ["key", "Facebook"] + +[[rules]] + description = "Twitter Secret Key" + regex = '''(?i)twitter(.{0,20})?['\"][0-9a-z]{35,44}['\"]''' + tags = ["key", "Twitter"] + +[[rules]] + description = "Twitter Client ID" + regex = '''(?i)twitter(.{0,20})?['\"][0-9a-z]{18,25}['\"]''' + tags = ["client", "Twitter"] + +[[rules]] + description = "Github Personal Access Token" + regex = '''ghp_[0-9a-zA-Z]{36}''' + tags = ["key", "Github"] +[[rules]] + description = "Github OAuth Access Token" + regex = '''gho_[0-9a-zA-Z]{36}''' + tags = ["key", "Github"] +[[rules]] + description = "Github App Token" + regex = '''(ghu|ghs)_[0-9a-zA-Z]{36}''' + tags = ["key", "Github"] +[[rules]] + description = "Github Refresh Token" + regex = '''ghr_[0-9a-zA-Z]{76}''' + tags = ["key", "Github"] + + + +[[rules]] + description = "LinkedIn Secret Key" + regex = '''(?i)linkedin(.{0,20})?[0-9a-z]{16}''' + tags = ["secret", "LinkedIn"] + +[[rules]] + description = "Slack" + regex = '''xox[baprs]-([0-9a-zA-Z]{10,48})?''' + tags = ["key", "Slack"] + +[[rules]] + description = "Asymmetric Private Key" + regex = '''-----BEGIN ((EC|PGP|DSA|RSA|OPENSSH) )?PRIVATE KEY( BLOCK)?-----''' + tags = ["key", "AsymmetricPrivateKey"] + +[[rules]] + description = "Google API key" + regex = '''AIza[0-9A-Za-z\\-_]{35}''' + tags = ["key", "Google"] + +[[rules]] + description = "Google (GCP) Service Account" + regex = '''"type": "service_account"''' + tags = ["key", "Google"] + +[[rules]] + description = "Heroku API key" + regex = '''(?i)heroku(.{0,20})?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}''' + tags = ["key", "Heroku"] + +[[rules]] + description = "MailChimp API key" + regex = '''(?i)(mailchimp|mc)(.{0,20})?[0-9a-f]{32}-us[0-9]{1,2}''' + tags = ["key", "Mailchimp"] + +[[rules]] + description = "Mailgun API key" + regex = '''((?i)(mailgun|mg)(.{0,20})?)?key-[0-9a-z]{32}''' + tags = ["key", "Mailgun"] + +[[rules]] + description = "PayPal Braintree access token" + regex = '''access_token\$production\$[0-9a-z]{16}\$[0-9a-f]{32}''' + tags = ["key", "Paypal"] + +[[rules]] + description = "Picatic API key" + regex = '''sk_live_[0-9a-z]{32}''' + tags = ["key", "Picatic"] + +[[rules]] + description = "SendGrid API Key" + regex = '''SG\.[\w_]{16,32}\.[\w_]{16,64}''' + tags = ["key", "SendGrid"] + +[[rules]] + description = "Slack Webhook" + regex = '''https://hooks.slack.com/services/T[a-zA-Z0-9_]{8}/B[a-zA-Z0-9_]{8,12}/[a-zA-Z0-9_]{24}''' + tags = ["key", "slack"] + +[[rules]] + description = "Stripe API key" + regex = '''(?i)stripe(.{0,20})?[sr]k_live_[0-9a-zA-Z]{24}''' + tags = ["key", "Stripe"] + +[[rules]] + description = "Square access token" + regex = '''sq0atp-[0-9A-Za-z\-_]{22}''' + tags = ["key", "square"] + +[[rules]] + description = "Square OAuth secret" + regex = '''sq0csp-[0-9A-Za-z\\-_]{43}''' + tags = ["key", "square"] + +[[rules]] + description = "Twilio API key" + regex = '''(?i)twilio(.{0,20})?SK[0-9a-f]{32}''' + tags = ["key", "twilio"] + +[[rules]] + description = "Dynatrace ttoken" + regex = '''dt0[a-zA-Z]{1}[0-9]{2}\.[A-Z0-9]{24}\.[A-Z0-9]{64}''' + tags = ["key", "Dynatrace"] + +[[rules]] + description = "Shopify shared secret" + regex = '''shpss_[a-fA-F0-9]{32}''' + tags = ["key", "Shopify"] + +[[rules]] + description = "Shopify access token" + regex = '''shpat_[a-fA-F0-9]{32}''' + tags = ["key", "Shopify"] + +[[rules]] + description = "Shopify custom app access token" + regex = '''shpca_[a-fA-F0-9]{32}''' + tags = ["key", "Shopify"] + +[[rules]] + description = "Shopify private app access token" + regex = '''shppa_[a-fA-F0-9]{32}''' + tags = ["key", "Shopify"] + +[[rules]] + description = "PyPI upload token" + regex = '''pypi-AgEIcHlwaS5vcmc[A-Za-z0-9-_]{50,1000}''' + tags = ["key", "pypi"] + +[allowlist] + description = "Allowlisted files" + paths = [ + '''.automation/test''', + '''megalinter-reports''', + '''.github/linters''', + '''node_modules''', + '''.mypy_cache''', + '''(.*?)gitleaks\.toml$''', + '''(.*?)(png|jpg|gif|doc|docx|pdf|bin|xls|pyc|zip)$''', + '''(go.mod|go.sum)$'''] \ No newline at end of file diff --git a/.automation/test/credentials/bad/config.py b/.automation/test/credentials/bad/config.py new file mode 100644 index 00000000000..0e692522a8b --- /dev/null +++ b/.automation/test/credentials/bad/config.py @@ -0,0 +1 @@ +aws_secret='ABCDEF+c2L7yXeGvUyrPgYsDnWRRC1AYEXAMPLE' \ No newline at end of file diff --git a/.automation/test/credentials/good/.gitleaks.toml b/.automation/test/credentials/good/.gitleaks.toml new file mode 100644 index 00000000000..b8f98fd1380 --- /dev/null +++ b/.automation/test/credentials/good/.gitleaks.toml @@ -0,0 +1,178 @@ + +title = "gitleaks config" + +[[rules]] + description = "AWS Access Key" + regex = '''(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}''' + tags = ["key", "AWS"] + +[[rules]] + description = "AWS Secret Key" + regex = '''(?i)aws(.{0,20})?(?-i)['\"][0-9a-zA-Z\/+]{40}['\"]''' + tags = ["key", "AWS"] + +[[rules]] + description = "AWS MWS key" + regex = '''amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}''' + tags = ["key", "AWS", "MWS"] + +[[rules]] + description = "Facebook Secret Key" + regex = '''(?i)(facebook|fb)(.{0,20})?(?-i)['\"][0-9a-f]{32}['\"]''' + tags = ["key", "Facebook"] + +[[rules]] + description = "Facebook Client ID" + regex = '''(?i)(facebook|fb)(.{0,20})?['\"][0-9]{13,17}['\"]''' + tags = ["key", "Facebook"] + +[[rules]] + description = "Twitter Secret Key" + regex = '''(?i)twitter(.{0,20})?['\"][0-9a-z]{35,44}['\"]''' + tags = ["key", "Twitter"] + +[[rules]] + description = "Twitter Client ID" + regex = '''(?i)twitter(.{0,20})?['\"][0-9a-z]{18,25}['\"]''' + tags = ["client", "Twitter"] + +[[rules]] + description = "Github Personal Access Token" + regex = '''ghp_[0-9a-zA-Z]{36}''' + tags = ["key", "Github"] +[[rules]] + description = "Github OAuth Access Token" + regex = '''gho_[0-9a-zA-Z]{36}''' + tags = ["key", "Github"] +[[rules]] + description = "Github App Token" + regex = '''(ghu|ghs)_[0-9a-zA-Z]{36}''' + tags = ["key", "Github"] +[[rules]] + description = "Github Refresh Token" + regex = '''ghr_[0-9a-zA-Z]{76}''' + tags = ["key", "Github"] + + + +[[rules]] + description = "LinkedIn Secret Key" + regex = '''(?i)linkedin(.{0,20})?[0-9a-z]{16}''' + tags = ["secret", "LinkedIn"] + +[[rules]] + description = "Slack" + regex = '''xox[baprs]-([0-9a-zA-Z]{10,48})?''' + tags = ["key", "Slack"] + +[[rules]] + description = "Asymmetric Private Key" + regex = '''-----BEGIN ((EC|PGP|DSA|RSA|OPENSSH) )?PRIVATE KEY( BLOCK)?-----''' + tags = ["key", "AsymmetricPrivateKey"] + +[[rules]] + description = "Google API key" + regex = '''AIza[0-9A-Za-z\\-_]{35}''' + tags = ["key", "Google"] + +[[rules]] + description = "Google (GCP) Service Account" + regex = '''"type": "service_account"''' + tags = ["key", "Google"] + +[[rules]] + description = "Heroku API key" + regex = '''(?i)heroku(.{0,20})?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}''' + tags = ["key", "Heroku"] + +[[rules]] + description = "MailChimp API key" + regex = '''(?i)(mailchimp|mc)(.{0,20})?[0-9a-f]{32}-us[0-9]{1,2}''' + tags = ["key", "Mailchimp"] + +[[rules]] + description = "Mailgun API key" + regex = '''((?i)(mailgun|mg)(.{0,20})?)?key-[0-9a-z]{32}''' + tags = ["key", "Mailgun"] + +[[rules]] + description = "PayPal Braintree access token" + regex = '''access_token\$production\$[0-9a-z]{16}\$[0-9a-f]{32}''' + tags = ["key", "Paypal"] + +[[rules]] + description = "Picatic API key" + regex = '''sk_live_[0-9a-z]{32}''' + tags = ["key", "Picatic"] + +[[rules]] + description = "SendGrid API Key" + regex = '''SG\.[\w_]{16,32}\.[\w_]{16,64}''' + tags = ["key", "SendGrid"] + +[[rules]] + description = "Slack Webhook" + regex = '''https://hooks.slack.com/services/T[a-zA-Z0-9_]{8}/B[a-zA-Z0-9_]{8,12}/[a-zA-Z0-9_]{24}''' + tags = ["key", "slack"] + +[[rules]] + description = "Stripe API key" + regex = '''(?i)stripe(.{0,20})?[sr]k_live_[0-9a-zA-Z]{24}''' + tags = ["key", "Stripe"] + +[[rules]] + description = "Square access token" + regex = '''sq0atp-[0-9A-Za-z\-_]{22}''' + tags = ["key", "square"] + +[[rules]] + description = "Square OAuth secret" + regex = '''sq0csp-[0-9A-Za-z\\-_]{43}''' + tags = ["key", "square"] + +[[rules]] + description = "Twilio API key" + regex = '''(?i)twilio(.{0,20})?SK[0-9a-f]{32}''' + tags = ["key", "twilio"] + +[[rules]] + description = "Dynatrace ttoken" + regex = '''dt0[a-zA-Z]{1}[0-9]{2}\.[A-Z0-9]{24}\.[A-Z0-9]{64}''' + tags = ["key", "Dynatrace"] + +[[rules]] + description = "Shopify shared secret" + regex = '''shpss_[a-fA-F0-9]{32}''' + tags = ["key", "Shopify"] + +[[rules]] + description = "Shopify access token" + regex = '''shpat_[a-fA-F0-9]{32}''' + tags = ["key", "Shopify"] + +[[rules]] + description = "Shopify custom app access token" + regex = '''shpca_[a-fA-F0-9]{32}''' + tags = ["key", "Shopify"] + +[[rules]] + description = "Shopify private app access token" + regex = '''shppa_[a-fA-F0-9]{32}''' + tags = ["key", "Shopify"] + +[[rules]] + description = "PyPI upload token" + regex = '''pypi-AgEIcHlwaS5vcmc[A-Za-z0-9-_]{50,1000}''' + tags = ["key", "pypi"] + +[allowlist] + description = "Allowlisted files" + paths = [ + '''.automation/test''', + '''megalinter-reports''', + '''.github/linters''', + '''node_modules''', + '''.mypy_cache''', + '''(.*?)gitleaks\.toml$''', + '''(.*?)(png|jpg|gif|doc|docx|pdf|bin|xls|pyc|zip)$''', + '''(go.mod|go.sum)$'''] \ No newline at end of file diff --git a/.automation/test/credentials/good/config.py b/.automation/test/credentials/good/config.py new file mode 100644 index 00000000000..90e522ef6fb --- /dev/null +++ b/.automation/test/credentials/good/config.py @@ -0,0 +1 @@ +aws_secret=os.getenv('AWS_SECRET_ACCESS_KEY') \ No newline at end of file diff --git a/.automation/test/devskim/bad/example-with-http-python-bandit-image.sh b/.automation/test/devskim/bad/example-with-http-python-bandit-image.sh new file mode 100644 index 00000000000..e571d1d338e --- /dev/null +++ b/.automation/test/devskim/bad/example-with-http-python-bandit-image.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# Example about how to call python bandit using its single-linter megalinter docker image + +# DEFINE SCRIPT VARIABLES (you can do the same in your script) +ROOT_FOLDER="c:/git" # Always put an absolute path here. Must be the root of all your repositories +DOCKER_IMAGE="oxsecurity/megalinter-only-python_bandit:v6-alpha" +LINTER_NAME="PYTHON_BANDIT" +WORKSPACE_TO_LINT="demo-megalinter-security-flavor" #name of the folder you want to lint within root folder + +# REMOVE PREVIOUS TEST CONTAINERS +echo "Removing previous tests containers..." +docker rm --force "$(docker ps --filter name=megalinter-server-PYTHON_BANDIT -q)" || true +echo "" +# docker container prune --filter name=megalinter-sshd --force + +# PULL LATEST MEGALINTER IMAGE VERSION +echo "Pulling latest docker image $DOCKER_IMAGE..." +docker pull "$DOCKER_IMAGE" + +# START MEGALINTER SERVER CONTAINER +# Internal flask server runs on port 80 +# MEGALINTER_SERVER is important, so entrypoint.sh just runs flask server +# Remove -d if you want to see that the server if well started +START_TIME=$(date +%s%N) +echo "Starting MegaLinter container with volume $ROOT_FOLDER, using docker image $DOCKER_IMAGE..." +docker run \ + -p 1984:80 \ + --name "megalinter-server-$LINTER_NAME" \ + -v "$ROOT_FOLDER:/tmp/lint" \ + -e MEGALINTER_SERVER="true" \ + -d \ + "$DOCKER_IMAGE" + +# STATS +echo "" +ELAPSED=$((($(date +%s%N) - $START_TIME)/1000000)) +echo "MegaLinter server docker image $DOCKER_IMAGE has started in $ELAPSED ms" + +# DISPLAY MEGALINTER CONTAINER +echo "" +docker ps +sleep 5s +echo "" + +# Make first curl just to check server is running +echo "Make first curl: GET current processes. For now it can take 3 mn, it's probably a network thing" +START_TIME=$(date +%s%N) +curl http://127.0.0.1:1984/lint_request +ELAPSED=$((($(date +%s%N) - $START_TIME)/1000000)) +echo "GET processed in $ELAPSED ms" +echo "" + +# Request lint +echo "Request linting with curl POST" +START_TIME=$(date +%s%N) +curl -d "{ \"workspace\": \"/tmp/lint/${WORKSPACE_TO_LINT}\" }" -H "Content-Type: application/json" -X POST http://127.0.0.1:1984/lint_request +ELAPSED=$((($(date +%s%N) - $START_TIME)/1000000)) +echo "LINT processed in $ELAPSED ms" +echo "" + +# Request second lint in a row +echo "Request second linting with curl POST" +START_TIME=$(date +%s%N) +curl -d "{ \"workspace\": \"/tmp/lint/${WORKSPACE_TO_LINT}\" }" -H "Content-Type: application/json" -X POST http://127.0.0.1:1984/lint_request +ELAPSED=$((($(date +%s%N) - $START_TIME)/1000000)) +echo "LINT processed in $ELAPSED ms" \ No newline at end of file diff --git a/.automation/test/devskim/bad/package-lock.json b/.automation/test/devskim/bad/package-lock.json new file mode 100644 index 00000000000..e1f3a29a229 --- /dev/null +++ b/.automation/test/devskim/bad/package-lock.json @@ -0,0 +1,138 @@ +{ + "name": "bad", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "tar": "^6.0.1" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", + "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", + "dependencies": { + "chownr": "^1.1.3", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + }, + "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "tar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", + "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", + "requires": { + "chownr": "^1.1.3", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } +} diff --git a/.automation/test/devskim/bad/package.json b/.automation/test/devskim/bad/package.json new file mode 100644 index 00000000000..d27eb0f729e --- /dev/null +++ b/.automation/test/devskim/bad/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "tar": "^6.0.1" + } +} diff --git a/.automation/test/devskim/good/package-lock.json b/.automation/test/devskim/good/package-lock.json new file mode 100644 index 00000000000..01bd58bc1e6 --- /dev/null +++ b/.automation/test/devskim/good/package-lock.json @@ -0,0 +1,141 @@ +{ + "name": "good", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "tar": "^6.1.11" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } +} diff --git a/.automation/test/devskim/good/package.json b/.automation/test/devskim/good/package.json new file mode 100644 index 00000000000..06b5fec3ff3 --- /dev/null +++ b/.automation/test/devskim/good/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "tar": "^6.1.11" + } +} diff --git a/.automation/test/docker/bad/.dockerfilelintrc b/.automation/test/docker/bad/.dockerfilelintrc deleted file mode 100644 index 92aee6cad0b..00000000000 --- a/.automation/test/docker/bad/.dockerfilelintrc +++ /dev/null @@ -1,104 +0,0 @@ ---- -########################### -########################### -## Dockerfile Lint rules ## -########################### -########################### - -################################# -# Default is 'on' for all rules # -# You can disable as needed. # -################################# -# Additional Info can be found at: -# https://github.com/replicatedhq/dockerfilelint - -# Set the rules -rules: - # All commands in a Dockerfile require at least 1 argument - required_params: on - - # For clarity and readability, all instructions in - # a Dockerfile should be uppercase - uppercase_commands: on - - # The first instruction in a Dockerfile must specify - # the base image using a FROM - from_first: on - - # This line is not a valid Dockerfile line - invalid_line: on - - # Use of sudo is not allowed in a Dockerfile - sudo_usage: on - - # Consider using a `--no-install-recommends` when `apt-get` - # installing packages - apt-get_missing_param: on - - # Consider using a `--no-install-recommends` when `apt-get` - # installing packages - apt-get_recommends: on - - # Use of `apt-get upgrade` is not allowed in a Dockerfile - apt-get-upgrade: on - - # Use of `apt-get dist-upgrade` is not allowed in a Dockerfile - apt-get-dist-upgrade: on - - # All instances of `apt-get update` should have the `apt-get install` - # commands on the same line to reduce image size - apt-get-update_require_install: on - - # Consider using a `--no-cache` (supported in alpine linux >= 3.3) or - # `--update` followed by the command `rm -rf /var/cache/apk/*` - # when `apk` adding packages. This will result in a smaller image size - apkadd-missing_nocache_or_updaterm: on - - # Consider using a `--virtual` or `-t` switch to group multiple packages - # for easy cleanup. This will help ensure future authors will continue - # to clean up build dependencies and other temporary packages - apkadd-missing-virtual: on - - # Exposing ports should only be valid port numbers - invalid_port: on - - # Only valid commands are allowed in a Dockerfile - invalid_command: on - - # Expose Only Container Port - expose_host_port: on - - # Using LABEL should be in key=value format - label_invalid: on - - # Base images should specify a tag to use - missing_tag: on - - # Base images should not use the latest tag - latest_tag: off - - # This command has extra arguments and will be ignored - extra_args: on - - # This command requires additional arguments - missing_args: on - - # All files referenced in an ADD command should - # be part of the Docker build context - add_src_invalid: on - - # When adding multiple files, the destination should be a directory - add_dest_invalid: on - - # Using a WORKDIR parameter that has spaces should be escaped - invalid_workdir: on - - # The arguments to this command are invalid - invalid_format: on - - # Use of apt-get update should be paired with - # rm -rf /var/lib/apt/lists/* in the same layer - apt-get_missing_rm: on - - # This INSTRUCTION is deprecated as of Docker 1.13 - deprecated_in_1.13: on diff --git a/.automation/test/docker/good/.dockerfilelintrc b/.automation/test/docker/good/.dockerfilelintrc deleted file mode 100644 index 92aee6cad0b..00000000000 --- a/.automation/test/docker/good/.dockerfilelintrc +++ /dev/null @@ -1,104 +0,0 @@ ---- -########################### -########################### -## Dockerfile Lint rules ## -########################### -########################### - -################################# -# Default is 'on' for all rules # -# You can disable as needed. # -################################# -# Additional Info can be found at: -# https://github.com/replicatedhq/dockerfilelint - -# Set the rules -rules: - # All commands in a Dockerfile require at least 1 argument - required_params: on - - # For clarity and readability, all instructions in - # a Dockerfile should be uppercase - uppercase_commands: on - - # The first instruction in a Dockerfile must specify - # the base image using a FROM - from_first: on - - # This line is not a valid Dockerfile line - invalid_line: on - - # Use of sudo is not allowed in a Dockerfile - sudo_usage: on - - # Consider using a `--no-install-recommends` when `apt-get` - # installing packages - apt-get_missing_param: on - - # Consider using a `--no-install-recommends` when `apt-get` - # installing packages - apt-get_recommends: on - - # Use of `apt-get upgrade` is not allowed in a Dockerfile - apt-get-upgrade: on - - # Use of `apt-get dist-upgrade` is not allowed in a Dockerfile - apt-get-dist-upgrade: on - - # All instances of `apt-get update` should have the `apt-get install` - # commands on the same line to reduce image size - apt-get-update_require_install: on - - # Consider using a `--no-cache` (supported in alpine linux >= 3.3) or - # `--update` followed by the command `rm -rf /var/cache/apk/*` - # when `apk` adding packages. This will result in a smaller image size - apkadd-missing_nocache_or_updaterm: on - - # Consider using a `--virtual` or `-t` switch to group multiple packages - # for easy cleanup. This will help ensure future authors will continue - # to clean up build dependencies and other temporary packages - apkadd-missing-virtual: on - - # Exposing ports should only be valid port numbers - invalid_port: on - - # Only valid commands are allowed in a Dockerfile - invalid_command: on - - # Expose Only Container Port - expose_host_port: on - - # Using LABEL should be in key=value format - label_invalid: on - - # Base images should specify a tag to use - missing_tag: on - - # Base images should not use the latest tag - latest_tag: off - - # This command has extra arguments and will be ignored - extra_args: on - - # This command requires additional arguments - missing_args: on - - # All files referenced in an ADD command should - # be part of the Docker build context - add_src_invalid: on - - # When adding multiple files, the destination should be a directory - add_dest_invalid: on - - # Using a WORKDIR parameter that has spaces should be escaped - invalid_workdir: on - - # The arguments to this command are invalid - invalid_format: on - - # Use of apt-get update should be paired with - # rm -rf /var/lib/apt/lists/* in the same layer - apt-get_missing_rm: on - - # This INSTRUCTION is deprecated as of Docker 1.13 - deprecated_in_1.13: on diff --git a/.automation/test/docker/reports/ERROR-DOCKERFILE_DOCKERFILELINT.txt b/.automation/test/docker/reports/ERROR-DOCKERFILE_DOCKERFILELINT.txt deleted file mode 100644 index d2797f134fa..00000000000 --- a/.automation/test/docker/reports/ERROR-DOCKERFILE_DOCKERFILELINT.txt +++ /dev/null @@ -1,70 +0,0 @@ -Results of dockerfilelint linter (version 1.8.0) -See documentation on https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/ ------------------------------------------------ - -[ERROR] .automation/test/docker/bad/Dockerfile - - File: .automation/test/docker/bad/Dockerfile - Issues: 5 - - Line 1: from node:latest - Issue Category Title Description - 1 Clarity Capitalize For clarity and readability, all instructions in a Dockerfile - Dockerfile should be uppercase. - Instructions This is a convention adopted by most of the official images and - greatly improves readability in long Dockerfiles. For an example - of - why this makes a difference, check out the current [redis - Dockerfile](https://github.com/docker-library/redis/blob/b375650fb6 - 9b7db819e90c0033433c705b28656e/3.0/Dockerfile) - and you should be able to easily see the instructions used. - - Line 4: run mkdir -p /usr/src/app - Issue Category Title Description - 2 Clarity Capitalize For clarity and readability, all instructions in a Dockerfile - Dockerfile should be uppercase. - Instructions This is a convention adopted by most of the official images and - greatly improves readability in long Dockerfiles. For an example - of - why this makes a difference, check out the current [redis - Dockerfile](https://github.com/docker-library/redis/blob/b375650fb6 - 9b7db819e90c0033433c705b28656e/3.0/Dockerfile) - and you should be able to easily see the instructions used. - - Line 8: copy package.json /usr/src/app/ /here/there - Issue Category Title Description - 3 Clarity Capitalize For clarity and readability, all instructions in a Dockerfile - Dockerfile should be uppercase. - Instructions This is a convention adopted by most of the official images and - greatly improves readability in long Dockerfiles. For an example - of - why this makes a difference, check out the current [redis - Dockerfile](https://github.com/docker-library/redis/blob/b375650fb6 - 9b7db819e90c0033433c705b28656e/3.0/Dockerfile) - and you should be able to easily see the instructions used. - - Line 9: RUN sudo npm install - Issue Category Title Description - 4 Possible Bug Use Of sudo Is Not Use of `sudo` is not allowed in a Dockerfile. From the official - Allowed document [Best practices for writing - Dockerfiles](https://docs.docker.com/engine/userguide/eng-image/doc - kerfile_best-practices/): - > You should avoid installing or using `sudo` since it has - unpredictable TTY and signal-forwarding behavior that can cause - more problems than it solves. - > If you absolutely need functionality similar to `sudo` (e.g., - initializing the daemon as root but running it as non-root), you - may be able to use `gosu`. - - Line 14: ENtrypoint /tmp/here.sh - Issue Category Title Description - 5 Clarity Capitalize For clarity and readability, all instructions in a Dockerfile - Dockerfile should be uppercase. - Instructions This is a convention adopted by most of the official images and - greatly improves readability in long Dockerfiles. For an example - of - why this makes a difference, check out the current [redis - Dockerfile](https://github.com/docker-library/redis/blob/b375650fb6 - 9b7db819e90c0033433c705b28656e/3.0/Dockerfile) - and you should be able to easily see the instructions used. - diff --git a/.automation/test/docker/reports/SUCCESS-DOCKERFILE_DOCKERFILELINT.txt b/.automation/test/docker/reports/SUCCESS-DOCKERFILE_DOCKERFILELINT.txt deleted file mode 100644 index 54be4f8b580..00000000000 --- a/.automation/test/docker/reports/SUCCESS-DOCKERFILE_DOCKERFILELINT.txt +++ /dev/null @@ -1,14 +0,0 @@ -Results of dockerfilelint linter (version 1.8.0) -See documentation on https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/ ------------------------------------------------ - -[SUCCESS] .automation/test/docker/good/Dockerfile - - File: .automation/test/docker/good/Dockerfile - Issues: None found 👍 - -[SUCCESS] .automation/test/docker/good/Dockerfile.dev - - File: .automation/test/docker/good/Dockerfile.dev - Issues: None found 👍 - diff --git a/.automation/test/dustilock/bad/example-with-http-python-bandit-image.sh b/.automation/test/dustilock/bad/example-with-http-python-bandit-image.sh new file mode 100644 index 00000000000..e571d1d338e --- /dev/null +++ b/.automation/test/dustilock/bad/example-with-http-python-bandit-image.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# Example about how to call python bandit using its single-linter megalinter docker image + +# DEFINE SCRIPT VARIABLES (you can do the same in your script) +ROOT_FOLDER="c:/git" # Always put an absolute path here. Must be the root of all your repositories +DOCKER_IMAGE="oxsecurity/megalinter-only-python_bandit:v6-alpha" +LINTER_NAME="PYTHON_BANDIT" +WORKSPACE_TO_LINT="demo-megalinter-security-flavor" #name of the folder you want to lint within root folder + +# REMOVE PREVIOUS TEST CONTAINERS +echo "Removing previous tests containers..." +docker rm --force "$(docker ps --filter name=megalinter-server-PYTHON_BANDIT -q)" || true +echo "" +# docker container prune --filter name=megalinter-sshd --force + +# PULL LATEST MEGALINTER IMAGE VERSION +echo "Pulling latest docker image $DOCKER_IMAGE..." +docker pull "$DOCKER_IMAGE" + +# START MEGALINTER SERVER CONTAINER +# Internal flask server runs on port 80 +# MEGALINTER_SERVER is important, so entrypoint.sh just runs flask server +# Remove -d if you want to see that the server if well started +START_TIME=$(date +%s%N) +echo "Starting MegaLinter container with volume $ROOT_FOLDER, using docker image $DOCKER_IMAGE..." +docker run \ + -p 1984:80 \ + --name "megalinter-server-$LINTER_NAME" \ + -v "$ROOT_FOLDER:/tmp/lint" \ + -e MEGALINTER_SERVER="true" \ + -d \ + "$DOCKER_IMAGE" + +# STATS +echo "" +ELAPSED=$((($(date +%s%N) - $START_TIME)/1000000)) +echo "MegaLinter server docker image $DOCKER_IMAGE has started in $ELAPSED ms" + +# DISPLAY MEGALINTER CONTAINER +echo "" +docker ps +sleep 5s +echo "" + +# Make first curl just to check server is running +echo "Make first curl: GET current processes. For now it can take 3 mn, it's probably a network thing" +START_TIME=$(date +%s%N) +curl http://127.0.0.1:1984/lint_request +ELAPSED=$((($(date +%s%N) - $START_TIME)/1000000)) +echo "GET processed in $ELAPSED ms" +echo "" + +# Request lint +echo "Request linting with curl POST" +START_TIME=$(date +%s%N) +curl -d "{ \"workspace\": \"/tmp/lint/${WORKSPACE_TO_LINT}\" }" -H "Content-Type: application/json" -X POST http://127.0.0.1:1984/lint_request +ELAPSED=$((($(date +%s%N) - $START_TIME)/1000000)) +echo "LINT processed in $ELAPSED ms" +echo "" + +# Request second lint in a row +echo "Request second linting with curl POST" +START_TIME=$(date +%s%N) +curl -d "{ \"workspace\": \"/tmp/lint/${WORKSPACE_TO_LINT}\" }" -H "Content-Type: application/json" -X POST http://127.0.0.1:1984/lint_request +ELAPSED=$((($(date +%s%N) - $START_TIME)/1000000)) +echo "LINT processed in $ELAPSED ms" \ No newline at end of file diff --git a/.automation/test/dustilock/bad/package.json b/.automation/test/dustilock/bad/package.json new file mode 100644 index 00000000000..36540ec425a --- /dev/null +++ b/.automation/test/dustilock/bad/package.json @@ -0,0 +1,11 @@ +{ + "name": "test", + "version": "5.6.0", + "dependencies": { + "angular":"123", + "appboy-web-sdk": "^2.2.7", + "appboy-web-sdk-v2": "npm:appboy-web-sdk@^2.7.0", + "gulp": "git+ssh://git@github.com:gulpjs/gulp.git", + "tar": "^6.0.1" + } +} diff --git a/.automation/test/dustilock/bad/requirements.txt b/.automation/test/dustilock/bad/requirements.txt new file mode 100644 index 00000000000..bf94bef69fe --- /dev/null +++ b/.automation/test/dustilock/bad/requirements.txt @@ -0,0 +1,4 @@ +-e svn+svn://svn.myproject.org/svn/MyProject#egg=MyProject +--editable git://git.myproject.org/MyProject.git@da39a3ee5e6b4b0d3255bfef95601890afd80709#egg=MyProject +--editable hg+http://hg.myproject.org/MyProject/@special_feature#egg=MyProject +-e bzr+lp://MyProject#egg=MyProject diff --git a/.automation/test/dustilock/good/package.json b/.automation/test/dustilock/good/package.json new file mode 100644 index 00000000000..06b5fec3ff3 --- /dev/null +++ b/.automation/test/dustilock/good/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "tar": "^6.1.11" + } +} diff --git a/.automation/test/gitleaks/bad/gitleaks_bad_01.txt b/.automation/test/gitleaks/bad/gitleaks_bad_01.txt new file mode 100644 index 00000000000..b4b6ca41f00 --- /dev/null +++ b/.automation/test/gitleaks/bad/gitleaks_bad_01.txt @@ -0,0 +1,2 @@ +aws_access_key_id = AROA47DSWDEZA3RQASWB +aws_secret_access_key = wQwdsZDiWg4UA5ngO0OSI2TkM4kkYxF6d2S1aYWM \ No newline at end of file diff --git a/.automation/test/gitleaks/bad/gitleaks_bad_02.txt b/.automation/test/gitleaks/bad/gitleaks_bad_02.txt new file mode 100644 index 00000000000..59ade3c730e --- /dev/null +++ b/.automation/test/gitleaks/bad/gitleaks_bad_02.txt @@ -0,0 +1,3 @@ +// muuurf +aws_access_key_id = AROA47DSWDEZA3RQASWB +aws_secret_access_key = wQwdsZDiWg4UA5ngO0OSI2TkM4kkYxF6d2S1aYWM \ No newline at end of file diff --git a/.automation/test/gitleaks/good/gitleaks_good_01.txt b/.automation/test/gitleaks/good/gitleaks_good_01.txt new file mode 100644 index 00000000000..0b9747b5b93 --- /dev/null +++ b/.automation/test/gitleaks/good/gitleaks_good_01.txt @@ -0,0 +1 @@ +AWS_SECRET_ACCESS_KEY = \ No newline at end of file diff --git a/.automation/test/golang/golang_good_01.go b/.automation/test/golang/golang_good_01.go index c04811917f0..ca59113af1c 100644 --- a/.automation/test/golang/golang_good_01.go +++ b/.automation/test/golang/golang_good_01.go @@ -1,3 +1,4 @@ +// This is a package comment package main import "fmt" diff --git a/.automation/test/java/java_good_1.java b/.automation/test/java/java_good_1.java index 70f50e7c860..369bffbe607 100644 --- a/.automation/test/java/java_good_1.java +++ b/.automation/test/java/java_good_1.java @@ -1,7 +1,8 @@ +package com.dummy.nico; /** * Represents a good Java file. */ -public static class JavaGood { +class JavaGood { // Prints "Hello, World" to the terminal window. private void helloWorld() { System.out.println("Hello, World"); diff --git a/.automation/test/java/java_good_2.java b/.automation/test/java/java_good_2.java index 376cef1fe8f..7d15e357fc1 100644 --- a/.automation/test/java/java_good_2.java +++ b/.automation/test/java/java_good_2.java @@ -1,3 +1,5 @@ +package com.dummy.nico; + @SuppressWarnings("checkstyle:hideutilityclassconstructor") public class Application { diff --git a/.automation/test/markdown/markdown_bad_1.md b/.automation/test/markdown/markdown_bad_1.md index 6b95b3c4a15..4d0c7587526 100644 --- a/.automation/test/markdown/markdown_bad_1.md +++ b/.automation/test/markdown/markdown_bad_1.md @@ -14,9 +14,9 @@ This header does **NOT** follow the __step__ down from `level 1`. ls -la ``` -| this | is a wrong | table | -|--------|-------|--------------------| -| hahaha | naaaaaaah | wrong formatting ! | +| this | is a wrong | table | +|--------|------------ |--------------------| +| hahaha | naaaaaaah | wrong formatting ! | | hahaha | naaaaaaah | wrong formatting ! | # Walk away diff --git a/.automation/test/mega-linter-config-test/base-error.mega-linter.yml b/.automation/test/mega-linter-config-test/base-error.mega-linter.yml index 78f82e39611..6ddee3ce353 100644 --- a/.automation/test/mega-linter-config-test/base-error.mega-linter.yml +++ b/.automation/test/mega-linter-config-test/base-error.mega-linter.yml @@ -1,4 +1,4 @@ EXTENDS: - - "https://raw.githubusercontent.com/megalinter/megalinter/main/.automation/test/mega-linter-config-test/extension3.mega-linter.yml" + - "https://raw.githubusercontent.com/oxsecurity/megalinter/main/.automation/test/mega-linter-config-test/extension3.mega-linter.yml" FILTER_REGEX_INCLUDE: "(base)" SHOW_ELAPSED_TIME: true diff --git a/.automation/test/mega-linter-config-test/base.mega-linter.yml b/.automation/test/mega-linter-config-test/base.mega-linter.yml index 9de06a063a6..e34c4eecf97 100644 --- a/.automation/test/mega-linter-config-test/base.mega-linter.yml +++ b/.automation/test/mega-linter-config-test/base.mega-linter.yml @@ -1,5 +1,5 @@ EXTENDS: - - "https://raw.githubusercontent.com/megalinter/megalinter/main/.automation/test/mega-linter-config-test/extension1.mega-linter.yml" - - "https://raw.githubusercontent.com/megalinter/megalinter/main/.automation/test/mega-linter-config-test/extension2.mega-linter.yml" + - "https://raw.githubusercontent.com/oxsecurity/megalinter/main/.automation/test/mega-linter-config-test/extension1.mega-linter.yml" + - "https://raw.githubusercontent.com/oxsecurity/megalinter/main/.automation/test/mega-linter-config-test/extension2.mega-linter.yml" FILTER_REGEX_INCLUDE: "(base)" SHOW_ELAPSED_TIME: true diff --git a/.automation/test/mega-linter-config-test/base2.mega-linter.yml b/.automation/test/mega-linter-config-test/base2.mega-linter.yml index b18aaa3e585..3a1fd58d558 100644 --- a/.automation/test/mega-linter-config-test/base2.mega-linter.yml +++ b/.automation/test/mega-linter-config-test/base2.mega-linter.yml @@ -1,3 +1,3 @@ -EXTENDS: "https://raw.githubusercontent.com/megalinter/megalinter/main/.automation/test/mega-linter-config-test/extension2.mega-linter.yml" +EXTENDS: "https://raw.githubusercontent.com/oxsecurity/megalinter/main/.automation/test/mega-linter-config-test/extension2.mega-linter.yml" FILTER_REGEX_INCLUDE: "(base)" SHOW_ELAPSED_TIME: true diff --git a/.automation/test/php/reports/ERROR-PHP_BUILTIN.txt b/.automation/test/php/reports/ERROR-PHP_BUILTIN.txt deleted file mode 100644 index d3a51de859c..00000000000 --- a/.automation/test/php/reports/ERROR-PHP_BUILTIN.txt +++ /dev/null @@ -1,12 +0,0 @@ -Results of php linter (version 7.3.25) -See documentation on https://megalinter.github.io/descriptors/php_php/ ------------------------------------------------ - -[ERROR] .automation/test/php/php_bad_1.php - PHP Parse error: syntax error, unexpected 'pe98y' (T_STRING) in .automation/test/php/php_bad_1.php on line 3 - Errors parsing .automation/test/php/php_bad_1.php - -[ERROR] .automation/test/php/php_bad_2.php - PHP Parse error: syntax error, unexpected '}' in .automation/test/php/php_bad_2.php on line 15 - Errors parsing .automation/test/php/php_bad_2.php - diff --git a/.automation/test/php/reports/SUCCESS-PHP_BUILTIN.txt b/.automation/test/php/reports/SUCCESS-PHP_BUILTIN.txt deleted file mode 100644 index 1e58234cd43..00000000000 --- a/.automation/test/php/reports/SUCCESS-PHP_BUILTIN.txt +++ /dev/null @@ -1,10 +0,0 @@ -Results of php linter (version 7.3.25) -See documentation on https://megalinter.github.io/descriptors/php_php/ ------------------------------------------------ - -[SUCCESS] .automation/test/php/php_good_1.php - No syntax errors detected in .automation/test/php/php_good_1.php - -[SUCCESS] .automation/test/php/php_good_2.php - No syntax errors detected in .automation/test/php/php_good_2.php - diff --git a/.automation/test/php/reports/expected-PHP_BUILTIN.tap b/.automation/test/php/reports/expected-PHP_BUILTIN.tap deleted file mode 100644 index beb3656e2f1..00000000000 --- a/.automation/test/php/reports/expected-PHP_BUILTIN.tap +++ /dev/null @@ -1,12 +0,0 @@ -TAP version 13 -1..4 -not ok 1 - php_bad_1.php - --- - message: PHP Parse error syntax error, unexpected 'pe98y' (T_STRING) in /tmp/lint/.automation/test/php/php_bad_1.php on line 3\nErrors parsing /tmp/lint/.automation/test/php/php_bad_1.php\n - ... -not ok 2 - php_bad_2.php - --- - message: PHP Parse error syntax error, unexpected '}' in /tmp/lint/.automation/test/php/php_bad_2.php on line 15\nErrors parsing /tmp/lint/.automation/test/php/php_bad_2.php\n - ... -ok 3 - php_good_1.php -ok 4 - php_good_2.php diff --git a/.automation/test/pre-post-test/.mega-linter.yml b/.automation/test/pre-post-test/.mega-linter.yml index 78e078b6cb1..d82643650d9 100644 --- a/.automation/test/pre-post-test/.mega-linter.yml +++ b/.automation/test/pre-post-test/.mega-linter.yml @@ -1,5 +1,5 @@ # Configuration file for MegaLinter -# See all available variables at https://megalinter.github.io/configuration/ and in linters documentation +# See all available variables at https://oxsecurity.github.io/megalinter/configuration/ and in linters documentation APPLY_FIXES: all # all, none, or list of linter keys # ENABLE diff --git a/.automation/test/repository_goodcheck/bad/README.md b/.automation/test/repository_goodcheck/bad/README.md new file mode 100644 index 00000000000..f1d6b9d0a80 --- /dev/null +++ b/.automation/test/repository_goodcheck/bad/README.md @@ -0,0 +1 @@ +Github is awesome ! \ No newline at end of file diff --git a/.automation/test/repository_goodcheck/bad/goodcheck.yml b/.automation/test/repository_goodcheck/bad/goodcheck.yml new file mode 100644 index 00000000000..fa4cd995e43 --- /dev/null +++ b/.automation/test/repository_goodcheck/bad/goodcheck.yml @@ -0,0 +1,17 @@ +rules: + # id, pattern, message are required attributes. + - id: example.github + pattern: Github + message: Do you want to write GitHub? + glob: + - "**/*" + fail: + - Signup via Github + pass: + - Signup via GitHub + +# You can skip checking files. +exclude: + - node_modules + - vendor + - "**/goodcheck.yml" diff --git a/.automation/test/repository_goodcheck/good/README.md b/.automation/test/repository_goodcheck/good/README.md new file mode 100644 index 00000000000..d357234bddb --- /dev/null +++ b/.automation/test/repository_goodcheck/good/README.md @@ -0,0 +1 @@ +GitHub is awesome ! \ No newline at end of file diff --git a/.automation/test/repository_goodcheck/good/goodcheck.yml b/.automation/test/repository_goodcheck/good/goodcheck.yml new file mode 100644 index 00000000000..d956cb5f241 --- /dev/null +++ b/.automation/test/repository_goodcheck/good/goodcheck.yml @@ -0,0 +1,17 @@ +rules: + # id, pattern, message are required attributes. + - id: example.github + pattern: Github + message: Do you want to write GitHub? + glob: + - "**/*" + fail: + - Signup via Github + pass: + - Signup via GitHub + +# You can skip checking files. +exclude: + - node_modules + - vendor + - "**/goodcheck.yml" \ No newline at end of file diff --git a/.automation/test/repository_semgrep/bad/Dockerfile b/.automation/test/repository_semgrep/bad/Dockerfile new file mode 100644 index 00000000000..4c9c4c72e30 --- /dev/null +++ b/.automation/test/repository_semgrep/bad/Dockerfile @@ -0,0 +1,14 @@ +from node:latest + +# Create app directory +run mkdir -p /usr/src/app +WORKDIR /usr/src/app + +# Install app dependencies +copy package.json /usr/src/app/ /here/there +RUN sudo npm install + +ADD server.js server.js +EXPOSE 1 +CMD ["node", "server.js"] +ENtrypoint /tmp/here.sh diff --git a/.automation/test/repository_semgrep/bad/security.go b/.automation/test/repository_semgrep/bad/security.go new file mode 100644 index 00000000000..7795766d8a9 --- /dev/null +++ b/.automation/test/repository_semgrep/bad/security.go @@ -0,0 +1,39 @@ +package main + +import ( + "crypto/rand" + mrand "math/rand" +) + +func main() { + main0() + main1() + main2() + main3() +} + +func main0() { + // ruleid: math-random-used + bad, _ := mrand.Read(nil) + println(bad) +} + +func main1() { + // ok: math-random-used + good, _ := rand.Read(nil) + println(good) +} + +func main2() { + // ruleid: math-random-used + bad := mrand.Int() + println(bad) +} + +func main3() { + // ok: math-random-used + good, _ := rand.Read(nil) + println(good) + i := mrand.Int31() + println(i) +} diff --git a/.automation/test/repository_semgrep/bad/simple_print.py b/.automation/test/repository_semgrep/bad/simple_print.py new file mode 100644 index 00000000000..0956c57bbbe --- /dev/null +++ b/.automation/test/repository_semgrep/bad/simple_print.py @@ -0,0 +1,4 @@ +def main(): + print("DEBUG: here") + if "a" is "a": + print("Useless") diff --git a/.automation/test/repository_semgrep/good/Dockerfile b/.automation/test/repository_semgrep/good/Dockerfile new file mode 100644 index 00000000000..488ffa6d363 --- /dev/null +++ b/.automation/test/repository_semgrep/good/Dockerfile @@ -0,0 +1,15 @@ +FROM node:10 + +USER demo + +# Create app directory +RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app + +# Install app dependencies +COPY package.json /usr/src/app/ +RUN npm ci + +COPY server.js server.js +EXPOSE 3002 +CMD ["node", "server.js"] diff --git a/.automation/test/repository_semgrep/good/simple_print.py b/.automation/test/repository_semgrep/good/simple_print.py new file mode 100644 index 00000000000..62671e3c424 --- /dev/null +++ b/.automation/test/repository_semgrep/good/simple_print.py @@ -0,0 +1,2 @@ +def main(): + print("DEBUG: here") diff --git a/mega-linter-runner/package-lock.json b/.automation/test/repository_syft/package-lock.json similarity index 99% rename from mega-linter-runner/package-lock.json rename to .automation/test/repository_syft/package-lock.json index e3d0b952ced..8a2c3c24568 100644 --- a/mega-linter-runner/package-lock.json +++ b/.automation/test/repository_syft/package-lock.json @@ -1,6 +1,6 @@ { "name": "mega-linter-runner", - "version": "5.17.0", + "version": "5.6.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -2482,9 +2482,9 @@ } }, "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, "minipass": { "version": "3.1.5", @@ -2654,9 +2654,9 @@ "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "version": "2.6.6", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", + "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", "requires": { "whatwg-url": "^5.0.0" } diff --git a/.automation/test/repository_syft/package.json b/.automation/test/repository_syft/package.json new file mode 100644 index 00000000000..6bb93f26cc7 --- /dev/null +++ b/.automation/test/repository_syft/package.json @@ -0,0 +1,96 @@ +{ + "name": "mega-linter-runner", + "version": "5.6.0", + "repository": { + "type": "git", + "url": "https://github.com/megalinter/megalinter.git" + }, + "description": "Local runner for MegaLinter", + "main": "index.js", + "files": [ + "lib", + "generators" + ], + "bin": { + "mega-linter-runner": "lib/index.js" + }, + "scripts": { + "test": "mocha \"test/**/*.test.js\"" + }, + "keywords": [ + "mega-linter", + "code", + "quality", + "runner", + "aggregator", + "javascript", + "typescript", + "python", + "c", + "java", + "csharp", + "yaml", + "json", + "rst", + "markdown", + "dotnet", + "lua", + "r", + "c++", + "dockerfile", + "bash", + "dart", + "go", + "groovy", + "react", + "perl", + "php", + "powershell", + "kotlin", + "scala", + "linter", + "lint", + "technical", + "debt", + "raku", + "ruby", + "rust", + "sql", + "basic", + "puppet", + "cloudformation", + "css", + "env", + "dotenv", + "graphql", + "latex", + "protocol", + "buffer", + "kubernetes", + "gherkin", + "cucumber", + "terraform", + "snakemake", + "ansible", + "jsonschema", + "swift" + ], + "author": "Nicolas Vuillamy", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.2", + "find-package-json": "^1.2.0", + "fs-extra": "^10.0.0", + "glob-promise": "^4.2.2", + "optionator": "^0.9.1", + "which": "^2.0.2", + "yeoman-environment": "^3.8.0", + "yeoman-generator": "^5.4.2", + "yosay": "^2.0.2" + }, + "devDependencies": { + "assert": "^2.0.0", + "eslint": "^7.14.0", + "mocha": "^8.2.1" + } +} diff --git a/.automation/test/repository_syft/setup.py b/.automation/test/repository_syft/setup.py new file mode 100644 index 00000000000..3c3ea654ee5 --- /dev/null +++ b/.automation/test/repository_syft/setup.py @@ -0,0 +1,27 @@ +from setuptools import setup + +setup( + name="megalinter", + version="0.1", + description="MegaLinter", + url="http://github.com/megalinter/megalinter", + author="Nicolas Vuillamy", + author_email="nicolas.vuillamy@gmail.com", + license="MIT", + packages=["megalinter", "megalinter.linters", "megalinter.reporters"], + install_requires=[ + "gitpython", + "jsonpickle", + "multiprocessing_logging", + "pychalk", + "pygithub", + "commentjson", + "pytablewriter", + "pyyaml", + "requests==2.24.0", + "terminaltables", + "importlib-metadata>=3.10" + # "flask-restful" + ], + zip_safe=False, +) diff --git a/.automation/test/sample_project_sarif/.eslintrc.json b/.automation/test/sample_project_sarif/.eslintrc.json new file mode 100644 index 00000000000..b69dd82bc9f --- /dev/null +++ b/.automation/test/sample_project_sarif/.eslintrc.json @@ -0,0 +1,13 @@ +{ + "env": { + "node": true, + "commonjs": true, + "es2021": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": 12 + }, + "rules": { + } +} diff --git a/.automation/test/sample_project_sarif/gitleaks_bad_01.txt b/.automation/test/sample_project_sarif/gitleaks_bad_01.txt new file mode 100644 index 00000000000..b4b6ca41f00 --- /dev/null +++ b/.automation/test/sample_project_sarif/gitleaks_bad_01.txt @@ -0,0 +1,2 @@ +aws_access_key_id = AROA47DSWDEZA3RQASWB +aws_secret_access_key = wQwdsZDiWg4UA5ngO0OSI2TkM4kkYxF6d2S1aYWM \ No newline at end of file diff --git a/.automation/test/sample_project_sarif/javascript_bad_1.js b/.automation/test/sample_project_sarif/javascript_bad_1.js new file mode 100644 index 00000000000..98e5ee29e32 --- /dev/null +++ b/.automation/test/sample_project_sarif/javascript_bad_1.js @@ -0,0 +1,225 @@ +var http = require('http') +var createHandler = require( 'github-webhook-handler') + +var handler = createHandler( { path : /webhook, secret : (process.env.SECRET) }) + +var userArray = [ 'user1' ] +here is some garbage = that + +var teamDescription = Team of Robots +var teamPrivacy = 'closed' // closed (visible) / secret (hidden) are options here + +var teamName = process.env.GHES_TEAM_NAME +var teamAccess = 'pull' // pull,push,admin options here +var teamId = '' + +var orgRepos = [] + +// var creator = "" + +var foo = someFunction(); +var bar = a + 1; + +http.createServer(function (req, res) { + handler(req, res, function (err) { + console.log(err) + res.statusCode = 404 + res.end('no such location') + }) +}).listen(3000) + +handler.on('error', function (err) { + console.await.error('Error:', err.message) +}) + +handler.on('repository', function (event) { + if (event.payload.action === 'created') { + const repo = event.payload.repository.full_name + console.log(repo) + const org = event.payload.repository.owner.login + getTeamID(org) + setTimeout(checkTeamIDVariable, 1000) + } +}) + +handler.on('team', function (event) { +// TODO user events such as being removed from team or org + if (event.payload.action === 'deleted') { + // const name = event.payload.team.name + const org = event.payload.organization.login + getRepositories(org) + setTimeout(checkReposVariable, 5000) + } else if (event.payload.action === 'removed_from_repository') { + const org = event.payload.organization.login + getTeamID(org) + // const repo = event.payload.repository.full_name + setTimeout(checkTeamIDVariable, 1000) + } +}) + +function getTeamID (org) { + const https = require('https') + + const options = { + hostname: (process.env.GHE_HOST), + port: 443 + path: '/api/v3/orgs/' + org + '/teams', + method: 'GET', + headers: { + Authorization: 'token ' + (process.env.GHE_TOKEN), + 'Content-Type': 'application/json' + } + } + let body = [] + const req = https.request(options, (res) => { + res.on('data', (chunk) => { + body.push(chunk) + }).on('end', () => { + body = JSON.parse(Buffer.concat(body)) + body.forEach(item => { + if (item.name === teamName) { + teamId = item.id + } + }) + }) + }) + + req.on('error, (error) => { + console.error(error) + }) + + req.end() +} + +function checkTeamIDVariable (repo) { + if (typeof teamId != 'undefined') { + addTeamToRepo(repo, teamId) + } +} + +function checkReposVariable (org) { + if (typeof orgRepos !== 'undefined') { + // for(var repo of orgRepos) { + // addTeamToRepo(repo, teamId) + // } + reCreateTeam(org) + } +} + +function addTeamToRepo (repo, teamId) { + const https = require('https') + const data = JSON.stringify({ + permission: teamAccess + }) + + const options = { + hostname: (process.env.GHE_HOST), + port: 443, + path: '/api/v3/teams/' + teamId + '/repos/' + repo, + method: 'PUT', + headers: { + Authorization: 'token ' + (process.env.GHE_TOKEN), + 'Content-Type': 'application/json', + 'Content-Length': data.length + } + } + let body = [] + + const req = https.request(options, (res) => { + res.on('data', (chunk) => { + + body.push(chunk) + + }).on('end', () => { + + body = Buffer.concat(body).toString() + console.log(res.statusCode) + console.log('added team to ' + repo) + }) + }) + + req.on('error', (error) => { + console.error(error) + }) + + req.write(data) + req.end() +} + +function reCreateTeam (org) { + const https = require('https') + const data = JSON.stringify({ + name: teamName, + description: teamDescription, + privacy: teamPrivacy + maintainers: userArray, + repo_names: orgRepos + }) + + const options = { + hostname: (process.env.GHE_HOST), + port: 443 + path: '/api/v3/orgs/' + org + '/teams', + method: 'POST', + headers: { + Authorization: 'token ' + (process.env.GHE_TOKEN), + 'Content-Type': 'application/json', + 'Content-Length': data.length + } + } + // const body = [] + const req = https.request(options, (res) => { + if (res.statusCode !== 201) { + console.log('Status code: ' + res.statusCode) + console.log('Added ' + teamName + ' to ' + org + ' Failed') + res.on('data', function (chunk) { + console.log('BODY: ' + chunk) + }) + } else { + console.log('Added ' + teamName ' to ' + org) + } + }) + + req.on('error', (error) => { + console.error(error) + }) + + req.write(data) + req.end() +} + +function getRepositories (org) { + orgRepos = [] + + const https = require('https') + + const options = { + hostname: (process.env.GHE_HOST), + port: '443', + path: '/api/v3/orgs/' + org + "/repos", + method: 'GET', + headers: { + Authorization: 'token ' + (process.env.GHE_TOKEN), + 'Content-Type': 'application/json' + } + } + let body = [] + const req = https.request(options, (res) => { + res.on('data', (chunk) => { + body.push(chunk) + + }).on('end', () => { + body = JSON.parse(Buffer.concat(body)) + body.forEach(item => { + orgRepos.push(item.full_name) + + console.log(item.full_name) + }) + }) + }) + + req.on('error', (error) => { + console.error(error) + }) + req.end() +} diff --git a/.automation/test/sample_project_sarif/package-lock.json b/.automation/test/sample_project_sarif/package-lock.json new file mode 100644 index 00000000000..e1f3a29a229 --- /dev/null +++ b/.automation/test/sample_project_sarif/package-lock.json @@ -0,0 +1,138 @@ +{ + "name": "bad", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "tar": "^6.0.1" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", + "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", + "dependencies": { + "chownr": "^1.1.3", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + }, + "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "tar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", + "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", + "requires": { + "chownr": "^1.1.3", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } +} diff --git a/.automation/test/sample_project_sarif/package.json b/.automation/test/sample_project_sarif/package.json new file mode 100644 index 00000000000..d27eb0f729e --- /dev/null +++ b/.automation/test/sample_project_sarif/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "tar": "^6.0.1" + } +} diff --git a/.automation/test/sample_project_sarif/python_bad_1.py b/.automation/test/sample_project_sarif/python_bad_1.py new file mode 100644 index 00000000000..d2a9efdb2de --- /dev/null +++ b/.automation/test/sample_project_sarif/python_bad_1.py @@ -0,0 +1,4 @@ +try: + pass +except: + pass diff --git a/.automation/test/sample_project_sarif/terraform_checkov_bad_1.tf b/.automation/test/sample_project_sarif/terraform_checkov_bad_1.tf new file mode 100644 index 00000000000..c563d02bdae --- /dev/null +++ b/.automation/test/sample_project_sarif/terraform_checkov_bad_1.tf @@ -0,0 +1,3 @@ +resource "aws_secretsmanager_secret" "bad" { + name = "test" +} \ No newline at end of file diff --git a/.automation/test/sample_project_sarif/terraform_kics_bad_1.tf b/.automation/test/sample_project_sarif/terraform_kics_bad_1.tf new file mode 100644 index 00000000000..7f821843729 --- /dev/null +++ b/.automation/test/sample_project_sarif/terraform_kics_bad_1.tf @@ -0,0 +1,12 @@ +resource "aws_ami" "bad_example" { + name = "terraform-example" + virtualization_type = "hvm" + root_device_name = "/dev/xvda2" + + ebs_block_device { + device_name = "/dev/xvda2" + snapshot_id = "snap-xxxxxxxx" + volume_size = 8 + encrypted = false + } +} diff --git a/.automation/test/sarif_reports/CLOUDFORMATION_CFN_LINT.sarif b/.automation/test/sarif_reports/CLOUDFORMATION_CFN_LINT.sarif new file mode 100644 index 00000000000..5a3f1bb6f21 --- /dev/null +++ b/.automation/test/sarif_reports/CLOUDFORMATION_CFN_LINT.sarif @@ -0,0 +1,141 @@ +{ + "runs": [ + { + "tool": { + "driver": { + "name": "cfn-lint", + "rules": [ + { + "id": "E3002", + "fullDescription": { + "text": "Making sure that resources properties are properly configured" + }, + "helpUri": "https://github.com/aws-cloudformation/cfn-python-lint/blob/main/docs/cfn-resource-specification.md#properties", + "shortDescription": { + "text": "Resource properties are valid" + } + }, + { + "id": "E3001", + "fullDescription": { + "text": "Making sure the basic CloudFormation resources are properly configured" + }, + "helpUri": "https://github.com/aws-cloudformation/cfn-python-lint", + "shortDescription": { + "text": "Basic CloudFormation Resource Check" + } + } + ], + "version": "0.56.3", + "informationUri": "https://github.com/aws-cloudformation/cfn-lint", + "shortDescription": { + "text": "Validates AWS CloudFormation templates against the resource specification and additional checks." + } + } + }, + "results": [ + { + "message": { + "text": "Invalid or unsupported Type AWS::Route53::HostedZonee for resource DNS in us-east-1" + }, + "level": "error", + "locations": [ + { + "physicalLocation": { + "region": { + "endColumn": 16, + "endLine": 6, + "startColumn": 10, + "startLine": 6 + }, + "artifactLocation": { + "uri": "/github/workspace/cloudformation_bad_1.json", + "uriBaseId": "EXECUTIONROOT" + } + } + } + ], + "ruleId": "E3001" + }, + { + "message": { + "text": "Invalid or unsupported Type AWS::Route53::HostedZonee for resource DNS in us-east-1" + }, + "level": "error", + "locations": [ + { + "physicalLocation": { + "region": { + "endColumn": 9, + "endLine": 5, + "startColumn": 5, + "startLine": 5 + }, + "artifactLocation": { + "uri": "/github/workspace/cloudformation_bad_2.yaml", + "uriBaseId": "EXECUTIONROOT" + } + } + } + ], + "ruleId": "E3001" + }, + { + "message": { + "text": "Invalid Property Resources/myDNSRecord/Properties/Ttl" + }, + "level": "error", + "locations": [ + { + "physicalLocation": { + "region": { + "endColumn": 18, + "endLine": 11, + "startColumn": 13, + "startLine": 11 + }, + "artifactLocation": { + "uri": "/github/workspace/cloudformation_bad_3.json", + "uriBaseId": "EXECUTIONROOT" + } + } + } + ], + "ruleId": "E3002" + }, + { + "message": { + "text": "Invalid Property Resources/myDNSRecord/Properties/Ttl" + }, + "level": "error", + "locations": [ + { + "physicalLocation": { + "region": { + "endColumn": 10, + "endLine": 9, + "startColumn": 7, + "startLine": 9 + }, + "artifactLocation": { + "uri": "/github/workspace/cloudformation_bad_4.yaml", + "uriBaseId": "EXECUTIONROOT" + } + } + } + ], + "ruleId": "E3002" + } + ], + "originalUriBaseIds": { + "EXECUTIONROOT": { + "description": { + "text": "The directory in which cfn-lint was run." + } + } + } + } + ], + "version": "2.1.0", + "$schema": "https://docs.oasis-open.org/sarif/sarif/v2.1.0/cos02/schemas/sarif-schema-2.1.0.json" +} \ No newline at end of file diff --git a/.automation/test/sarif_reports/JAVASCRIPT_ES.sarif b/.automation/test/sarif_reports/JAVASCRIPT_ES.sarif new file mode 100644 index 00000000000..bc8011c8ee2 --- /dev/null +++ b/.automation/test/sarif_reports/JAVASCRIPT_ES.sarif @@ -0,0 +1,53 @@ +{ + "version": "2.1.0", + "$schema": "http://json.schemastore.org/sarif-2.1.0-rtm.4", + "runs": [ + { + "tool": { + "driver": { + "name": "ESLint", + "informationUri": "https://eslint.org", + "rules": [] + } + }, + "artifacts": [ + { + "location": { + "uri": "file:///github/workspace/javascript_bad_1.js" + } + } + ], + "results": [], + "invocations": [ + { + "toolConfigurationNotifications": [ + { + "level": "error", + "message": { + "text": "Parsing error: Unterminated regular expression" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///github/workspace/javascript_bad_1.js", + "index": 0 + }, + "region": { + "startLine": 4, + "startColumn": 40 + } + } + } + ], + "descriptor": { + "id": "ESL0999" + } + } + ], + "executionSuccessful": false + } + ] + } + ] +} \ No newline at end of file diff --git a/.automation/test/sarif_reports/JAVA_CHECKSTYLE.sarif b/.automation/test/sarif_reports/JAVA_CHECKSTYLE.sarif new file mode 100644 index 00000000000..1f86c3ad668 --- /dev/null +++ b/.automation/test/sarif_reports/JAVA_CHECKSTYLE.sarif @@ -0,0 +1,25 @@ +{ + "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json", + "version": "2.1.0", + "runs": [ + { + "tool": { + "driver": { + "downloadUri": "https://github.com/checkstyle/checkstyle/releases/", + "fullName": "Checkstyle", + "informationUri": "https://checkstyle.org/", + "language": "en", + "name": "Checkstyle", + "organization": "Checkstyle", + "rules": [ + ], + "semanticVersion": "9.2", + "version": "9.2" + } + }, + "results": [ + + ] + } + ] +} diff --git a/.automation/test/sarif_reports/JSON_ESLINT_PLUGIN_JSONC.sarif b/.automation/test/sarif_reports/JSON_ESLINT_PLUGIN_JSONC.sarif new file mode 100644 index 00000000000..5b70ce3d293 --- /dev/null +++ b/.automation/test/sarif_reports/JSON_ESLINT_PLUGIN_JSONC.sarif @@ -0,0 +1,134 @@ +{ + "version": "2.1.0", + "$schema": "http://json.schemastore.org/sarif-2.1.0-rtm.4", + "runs": [ + { + "tool": { + "driver": { + "name": "ESLint", + "informationUri": "https://eslint.org", + "rules": [] + } + }, + "artifacts": [ + { + "location": { + "uri": "file:///github/workspace/.eslintrc.json" + } + }, + { + "location": { + "uri": "file:///github/workspace/cloudformation_bad_1.json" + } + }, + { + "location": { + "uri": "file:///github/workspace/cloudformation_bad_3.json" + } + }, + { + "location": { + "uri": "file:///github/workspace/json_bad_1.json" + } + }, + { + "location": { + "uri": "file:///github/workspace/json_bad_2.jsonc" + } + }, + { + "location": { + "uri": "file:///github/workspace/json_bad_3.json5" + } + }, + { + "location": { + "uri": "file:///github/workspace/package-lock.json" + } + }, + { + "location": { + "uri": "file:///github/workspace/package.json" + } + } + ], + "results": [], + "invocations": [ + { + "toolConfigurationNotifications": [ + { + "level": "error", + "message": { + "text": "Parsing error: Unexpected single quoted." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///github/workspace/json_bad_1.json", + "index": 3 + }, + "region": { + "startLine": 6, + "startColumn": 14 + } + } + } + ], + "descriptor": { + "id": "ESL0999" + } + }, + { + "level": "error", + "message": { + "text": "Parsing error: Unexpected this expression." + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///github/workspace/json_bad_2.jsonc", + "index": 4 + }, + "region": { + "startLine": 8, + "startColumn": 8 + } + } + } + ], + "descriptor": { + "id": "ESL0999" + } + }, + { + "level": "error", + "message": { + "text": "Parsing error: Identifier directly after number" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///github/workspace/json_bad_3.json5", + "index": 5 + }, + "region": { + "startLine": 6, + "startColumn": 12 + } + } + } + ], + "descriptor": { + "id": "ESL0999" + } + } + ], + "executionSuccessful": false + } + ] + } + ] +} \ No newline at end of file diff --git a/.automation/test/sarif_reports/JSX_ESLINT.sarif b/.automation/test/sarif_reports/JSX_ESLINT.sarif new file mode 100644 index 00000000000..093aba82021 --- /dev/null +++ b/.automation/test/sarif_reports/JSX_ESLINT.sarif @@ -0,0 +1,53 @@ +{ + "version": "2.1.0", + "$schema": "http://json.schemastore.org/sarif-2.1.0-rtm.4", + "runs": [ + { + "tool": { + "driver": { + "name": "ESLint", + "informationUri": "https://eslint.org", + "rules": [] + } + }, + "artifacts": [ + { + "location": { + "uri": "file:///github/workspace/jsx_bad_1.jsx" + } + } + ], + "results": [], + "invocations": [ + { + "toolConfigurationNotifications": [ + { + "level": "error", + "message": { + "text": "Parsing error: 'import' and 'export' may appear only with 'sourceType: module'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///github/workspace/jsx_bad_1.jsx", + "index": 0 + }, + "region": { + "startLine": 1, + "startColumn": 1 + } + } + } + ], + "descriptor": { + "id": "ESL0999" + } + } + ], + "executionSuccessful": false + } + ] + } + ] +} \ No newline at end of file diff --git a/.automation/test/sarif_reports/KOTLIN_KTLINT.sarif b/.automation/test/sarif_reports/KOTLIN_KTLINT.sarif new file mode 100644 index 00000000000..0efe53a7313 --- /dev/null +++ b/.automation/test/sarif_reports/KOTLIN_KTLINT.sarif @@ -0,0 +1,197 @@ +{ + "$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json", + "version": "2.1.0", + "runs": [ + { + "originalUriBaseIds": { + "%SRCROOT%": { + "uri": "file:///root/" + } + }, + "results": [ + { + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../github/workspace/kotlin_bad_1.kt", + "uriBaseId": "%SRCROOT%" + }, + "region": { + "startColumn": 1, + "startLine": 1 + } + } + } + ], + "message": { + "text": "Incorrect modifier order (should be \"internal abstract\")" + }, + "ruleId": "modifier-order" + }, + { + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../github/workspace/kotlin_bad_1.kt", + "uriBaseId": "%SRCROOT%" + }, + "region": { + "startColumn": 5, + "startLine": 2 + } + } + } + ], + "message": { + "text": "Incorrect modifier order (should be \"protected open\")" + }, + "ruleId": "modifier-order" + }, + { + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../github/workspace/kotlin_bad_1.kt", + "uriBaseId": "%SRCROOT%" + }, + "region": { + "startColumn": 5, + "startLine": 3 + } + } + } + ], + "message": { + "text": "Incorrect modifier order (should be \"internal open suspend\")" + }, + "ruleId": "modifier-order" + }, + { + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../github/workspace/kotlin_bad_1.kt", + "uriBaseId": "%SRCROOT%" + }, + "region": { + "startColumn": 5, + "startLine": 4 + } + } + } + ], + "message": { + "text": "Incorrect modifier order (should be \"public lateinit\")" + }, + "ruleId": "modifier-order" + }, + { + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../github/workspace/kotlin_bad_1.kt", + "uriBaseId": "%SRCROOT%" + }, + "region": { + "startColumn": 5, + "startLine": 5 + } + } + } + ], + "message": { + "text": "Incorrect modifier order (should be \"abstract tailrec\")" + }, + "ruleId": "modifier-order" + }, + { + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../github/workspace/kotlin_bad_1.kt", + "uriBaseId": "%SRCROOT%" + }, + "region": { + "startColumn": 5, + "startLine": 9 + } + } + } + ], + "message": { + "text": "Incorrect modifier order (should be \"public override\")" + }, + "ruleId": "modifier-order" + }, + { + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../github/workspace/kotlin_bad_1.kt", + "uriBaseId": "%SRCROOT%" + }, + "region": { + "startColumn": 1, + "startLine": 12 + } + } + } + ], + "message": { + "text": "Unexpected indentation (8) (should be 4)" + }, + "ruleId": "indent" + }, + { + "level": "error", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "../github/workspace/kotlin_bad_1.kt", + "uriBaseId": "%SRCROOT%" + }, + "region": { + "startColumn": 9, + "startLine": 12 + } + } + } + ], + "message": { + "text": "Line break before assignment is not allowed" + }, + "ruleId": "no-line-break-before-assignment" + } + ], + "tool": { + "driver": { + "downloadUri": "https://github.com/pinterest/ktlint/releases/tag/0.43.2", + "fullName": "ktlint", + "informationUri": "https://github.com/pinterest/ktlint/", + "language": "en", + "name": "ktlint", + "organization": "pinterest", + "rules": [ + ], + "semanticVersion": "0.43.2", + "version": "0.43.2" + } + } + } + ] +} diff --git a/.automation/test/sarif_reports/PYTHON_BANDIT.sarif b/.automation/test/sarif_reports/PYTHON_BANDIT.sarif new file mode 100644 index 00000000000..6af96554618 --- /dev/null +++ b/.automation/test/sarif_reports/PYTHON_BANDIT.sarif @@ -0,0 +1,435 @@ +{ + "runs": [ + { + "tool": { + "driver": { + "name": "Bandit", + "rules": [ + { + "id": "B404", + "name": "blacklist", + "helpUri": "https://bandit.readthedocs.io/en/latest/blacklists/blacklist_imports.html#b404-import-subprocess" + }, + { + "id": "B506", + "name": "yaml_load", + "helpUri": "https://bandit.readthedocs.io/en/latest/plugins/b506_yaml_load.html" + }, + { + "id": "B602", + "name": "subprocess_popen_with_shell_equals_true", + "helpUri": "https://bandit.readthedocs.io/en/latest/plugins/b602_subprocess_popen_with_shell_equals_true.html" + }, + { + "id": "B607", + "name": "start_process_with_partial_path", + "helpUri": "https://bandit.readthedocs.io/en/latest/plugins/b607_start_process_with_partial_path.html" + }, + { + "id": "B110", + "name": "try_except_pass", + "helpUri": "https://bandit.readthedocs.io/en/latest/plugins/b110_try_except_pass.html" + } + ] + } + }, + "invocations": [ + { + "executionSuccessful": true, + "endTimeUtc": "2021-12-08T21:21:50Z" + } + ], + "properties": { + "metrics": { + "_totals": { + "loc": 2084, + "nosec": 0, + "SEVERITY.UNDEFINED": 0.0, + "CONFIDENCE.UNDEFINED": 0.0, + "SEVERITY.LOW": 3.0, + "CONFIDENCE.LOW": 0.0, + "SEVERITY.MEDIUM": 5.0, + "CONFIDENCE.MEDIUM": 0.0, + "SEVERITY.HIGH": 2.0, + "CONFIDENCE.HIGH": 10.0 + }, + "/github/workspace/.github/workflows/build.py": { + "loc": 2033, + "nosec": 0, + "SEVERITY.UNDEFINED": 0.0, + "SEVERITY.LOW": 2.0, + "SEVERITY.MEDIUM": 5.0, + "SEVERITY.HIGH": 2.0, + "CONFIDENCE.UNDEFINED": 0.0, + "CONFIDENCE.LOW": 0.0, + "CONFIDENCE.MEDIUM": 0.0, + "CONFIDENCE.HIGH": 9.0 + }, + "/github/workspace/alpaca.py": { + "loc": 47, + "nosec": 0, + "SEVERITY.UNDEFINED": 0.0, + "SEVERITY.LOW": 0.0, + "SEVERITY.MEDIUM": 0.0, + "SEVERITY.HIGH": 0.0, + "CONFIDENCE.UNDEFINED": 0.0, + "CONFIDENCE.LOW": 0.0, + "CONFIDENCE.MEDIUM": 0.0, + "CONFIDENCE.HIGH": 0.0 + }, + "/github/workspace/python_bad_1.py": { + "loc": 4, + "nosec": 0, + "SEVERITY.UNDEFINED": 0.0, + "SEVERITY.LOW": 1.0, + "SEVERITY.MEDIUM": 0.0, + "SEVERITY.HIGH": 0.0, + "CONFIDENCE.UNDEFINED": 0.0, + "CONFIDENCE.LOW": 0.0, + "CONFIDENCE.MEDIUM": 0.0, + "CONFIDENCE.HIGH": 1.0 + } + } + }, + "results": [ + { + "message": { + "text": "Consider possible security implications associated with the subprocess module." + }, + "level": "note", + "locations": [ + { + "physicalLocation": { + "region": { + "snippet": { + "text": "import subprocess\n" + }, + "startLine": 10 + }, + "artifactLocation": { + "uri": "file:///github/workspace/.github/workflows/build.py" + }, + "contextRegion": { + "snippet": { + "text": "import re\nimport subprocess\nimport sys\n" + }, + "endLine": 11, + "startLine": 9 + } + } + } + ], + "properties": { + "issue_confidence": "HIGH", + "issue_severity": "LOW" + }, + "ruleId": "B404", + "ruleIndex": 0 + }, + { + "message": { + "text": "Use of unsafe yaml load. Allows instantiation of arbitrary objects. Consider yaml.safe_load()." + }, + "locations": [ + { + "physicalLocation": { + "region": { + "snippet": { + "text": " descriptor = yaml.load(f, Loader=yaml.FullLoader)\n" + }, + "startLine": 121 + }, + "artifactLocation": { + "uri": "file:///github/workspace/.github/workflows/build.py" + }, + "contextRegion": { + "snippet": { + "text": " with open(descriptor_file, \"r\", encoding=\"utf-8\") as f:\n descriptor = yaml.load(f, Loader=yaml.FullLoader)\n if (\n" + }, + "endLine": 122, + "startLine": 120 + } + } + } + ], + "properties": { + "issue_confidence": "HIGH", + "issue_severity": "MEDIUM" + }, + "ruleId": "B506", + "ruleIndex": 1 + }, + { + "message": { + "text": "Use of unsafe yaml load. Allows instantiation of arbitrary objects. Consider yaml.safe_load()." + }, + "locations": [ + { + "physicalLocation": { + "region": { + "snippet": { + "text": " instance=yaml.load(mega_linter_config, Loader=yaml.FullLoader),\n" + }, + "startLine": 1732 + }, + "artifactLocation": { + "uri": "file:///github/workspace/.github/workflows/build.py" + }, + "contextRegion": { + "snippet": { + "text": " jsonschema.validate(\n instance=yaml.load(mega_linter_config, Loader=yaml.FullLoader),\n schema=yaml.load(descriptor_schema, Loader=yaml.FullLoader),\n" + }, + "endLine": 1733, + "startLine": 1731 + } + } + } + ], + "properties": { + "issue_confidence": "HIGH", + "issue_severity": "MEDIUM" + }, + "ruleId": "B506", + "ruleIndex": 1 + }, + { + "message": { + "text": "Use of unsafe yaml load. Allows instantiation of arbitrary objects. Consider yaml.safe_load()." + }, + "locations": [ + { + "physicalLocation": { + "region": { + "snippet": { + "text": " schema=yaml.load(descriptor_schema, Loader=yaml.FullLoader),\n" + }, + "startLine": 1733 + }, + "artifactLocation": { + "uri": "file:///github/workspace/.github/workflows/build.py" + }, + "contextRegion": { + "snippet": { + "text": " instance=yaml.load(mega_linter_config, Loader=yaml.FullLoader),\n schema=yaml.load(descriptor_schema, Loader=yaml.FullLoader),\n )\n" + }, + "endLine": 1734, + "startLine": 1732 + } + } + } + ], + "properties": { + "issue_confidence": "HIGH", + "issue_severity": "MEDIUM" + }, + "ruleId": "B506", + "ruleIndex": 1 + }, + { + "message": { + "text": "Use of unsafe yaml load. Allows instantiation of arbitrary objects. Consider yaml.safe_load()." + }, + "locations": [ + { + "physicalLocation": { + "region": { + "snippet": { + "text": " instance=yaml.load(descriptor, Loader=yaml.FullLoader),\n" + }, + "startLine": 1749 + }, + "artifactLocation": { + "uri": "file:///github/workspace/.github/workflows/build.py" + }, + "contextRegion": { + "snippet": { + "text": " jsonschema.validate(\n instance=yaml.load(descriptor, Loader=yaml.FullLoader),\n schema=yaml.load(descriptor_schema, Loader=yaml.FullLoader),\n" + }, + "endLine": 1750, + "startLine": 1748 + } + } + } + ], + "properties": { + "issue_confidence": "HIGH", + "issue_severity": "MEDIUM" + }, + "ruleId": "B506", + "ruleIndex": 1 + }, + { + "message": { + "text": "Use of unsafe yaml load. Allows instantiation of arbitrary objects. Consider yaml.safe_load()." + }, + "locations": [ + { + "physicalLocation": { + "region": { + "snippet": { + "text": " schema=yaml.load(descriptor_schema, Loader=yaml.FullLoader),\n" + }, + "startLine": 1750 + }, + "artifactLocation": { + "uri": "file:///github/workspace/.github/workflows/build.py" + }, + "contextRegion": { + "snippet": { + "text": " instance=yaml.load(descriptor, Loader=yaml.FullLoader),\n schema=yaml.load(descriptor_schema, Loader=yaml.FullLoader),\n )\n" + }, + "endLine": 1751, + "startLine": 1749 + } + } + } + ], + "properties": { + "issue_confidence": "HIGH", + "issue_severity": "MEDIUM" + }, + "ruleId": "B506", + "ruleIndex": 1 + }, + { + "message": { + "text": "subprocess call with shell=True identified, security issue." + }, + "level": "error", + "locations": [ + { + "physicalLocation": { + "region": { + "snippet": { + "text": " shell=True,\n" + }, + "startLine": 2220 + }, + "artifactLocation": { + "uri": "file:///github/workspace/.github/workflows/build.py" + }, + "contextRegion": { + "snippet": { + "text": " cwd=os.getcwd() + \"/.automation\",\n shell=True,\n )\n print(process.stdout)\n print(process.stderr)\n\n\ndef generate_version():\n" + }, + "endLine": 2226, + "startLine": 2219 + } + } + } + ], + "properties": { + "issue_confidence": "HIGH", + "issue_severity": "HIGH" + }, + "ruleId": "B602", + "ruleIndex": 2 + }, + { + "message": { + "text": "Starting a process with a partial executable path" + }, + "level": "note", + "locations": [ + { + "physicalLocation": { + "region": { + "snippet": { + "text": " process = subprocess.run(\n" + }, + "startLine": 2230 + }, + "artifactLocation": { + "uri": "file:///github/workspace/.github/workflows/build.py" + }, + "contextRegion": { + "snippet": { + "text": " cwd_to_use = os.getcwd() + \"/mega-linter-runner\"\n process = subprocess.run(\n [\n \"npm\",\n \"version\",\n \"--newversion\",\n RELEASE_TAG,\n \"-no-git-tag-version\",\n \"--no-commit-hooks\",\n ],\n stdout=subprocess.PIPE,\n universal_newlines=True,\n cwd=cwd_to_use,\n shell=True,\n )\n" + }, + "endLine": 2243, + "startLine": 2229 + } + } + } + ], + "properties": { + "issue_confidence": "HIGH", + "issue_severity": "LOW" + }, + "ruleId": "B607", + "ruleIndex": 3 + }, + { + "message": { + "text": "subprocess call with shell=True identified, security issue." + }, + "level": "error", + "locations": [ + { + "physicalLocation": { + "region": { + "snippet": { + "text": " shell=True,\n" + }, + "startLine": 2242 + }, + "artifactLocation": { + "uri": "file:///github/workspace/.github/workflows/build.py" + }, + "contextRegion": { + "snippet": { + "text": " cwd=cwd_to_use,\n shell=True,\n )\n print(process.stdout)\n print(process.stderr)\n # Update changelog\n changelog_file = f\"{REPO_HOME}/CHANGELOG.md\"\n\n with open(changelog_file, \"r\", encoding=\"utf-8\") as md_file:\n changelog_content = md_file.read()\n changelog_content = changelog_content.replace(\"\", \"\")\n new_release_lines = [\n \",\" \"\",\n \"\",\n \"- Linter versions upgrades\",\n" + }, + "endLine": 2255, + "startLine": 2241 + } + } + } + ], + "properties": { + "issue_confidence": "HIGH", + "issue_severity": "HIGH" + }, + "ruleId": "B602", + "ruleIndex": 2 + }, + { + "message": { + "text": "Try, Except, Pass detected." + }, + "level": "note", + "locations": [ + { + "physicalLocation": { + "region": { + "snippet": { + "text": "except:\n" + }, + "startLine": 3 + }, + "artifactLocation": { + "uri": "file:///github/workspace/python_bad_1.py" + }, + "contextRegion": { + "snippet": { + "text": " pass\nexcept:\n pass\n" + }, + "endLine": 4, + "startLine": 2 + } + } + } + ], + "properties": { + "issue_confidence": "HIGH", + "issue_severity": "LOW" + }, + "ruleId": "B110", + "ruleIndex": 4 + } + ] + } + ], + "version": "2.1.0", + "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.4.json" +} \ No newline at end of file diff --git a/.automation/test/sarif_reports/REPOSITORY_GITLEAKS.sarif b/.automation/test/sarif_reports/REPOSITORY_GITLEAKS.sarif new file mode 100644 index 00000000000..b8ef0da33f0 --- /dev/null +++ b/.automation/test/sarif_reports/REPOSITORY_GITLEAKS.sarif @@ -0,0 +1,280 @@ +{ + "$schema": "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json", + "version": "2.1.0", + "runs": [ + { + "tool": { + "driver": { + "name": "gitleaks", + "semanticVersion": "v8.0.0", + "rules": [ + { + "id": "", + "name": "AWS Access Key", + "shortDescription": { + "text": "(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}" + } + }, + { + "id": "", + "name": "AWS Secret Key", + "shortDescription": { + "text": "(?i)aws(.{0,20})?(?-i)['\\\"][0-9a-zA-Z\\/+]{40}['\\\"]" + } + }, + { + "id": "", + "name": "AWS MWS key", + "shortDescription": { + "text": "amzn\\.mws\\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + } + }, + { + "id": "", + "name": "Facebook Secret Key", + "shortDescription": { + "text": "(?i)(facebook|fb)(.{0,20})?(?-i)['\\\"][0-9a-f]{32}['\\\"]" + } + }, + { + "id": "", + "name": "Facebook Client ID", + "shortDescription": { + "text": "(?i)(facebook|fb)(.{0,20})?['\\\"][0-9]{13,17}['\\\"]" + } + }, + { + "id": "", + "name": "Twitter Secret Key", + "shortDescription": { + "text": "(?i)twitter(.{0,20})?['\\\"][0-9a-z]{35,44}['\\\"]" + } + }, + { + "id": "", + "name": "Twitter Client ID", + "shortDescription": { + "text": "(?i)twitter(.{0,20})?['\\\"][0-9a-z]{18,25}['\\\"]" + } + }, + { + "id": "", + "name": "Github Personal Access Token", + "shortDescription": { + "text": "ghp_[0-9a-zA-Z]{36}" + } + }, + { + "id": "", + "name": "Github OAuth Access Token", + "shortDescription": { + "text": "gho_[0-9a-zA-Z]{36}" + } + }, + { + "id": "", + "name": "Github App Token", + "shortDescription": { + "text": "(ghu|ghs)_[0-9a-zA-Z]{36}" + } + }, + { + "id": "", + "name": "Github Refresh Token", + "shortDescription": { + "text": "ghr_[0-9a-zA-Z]{76}" + } + }, + { + "id": "", + "name": "LinkedIn Secret Key", + "shortDescription": { + "text": "(?i)linkedin(.{0,20})?[0-9a-z]{16}" + } + }, + { + "id": "", + "name": "Slack", + "shortDescription": { + "text": "xox[baprs]-([0-9a-zA-Z]{10,48})?" + } + }, + { + "id": "", + "name": "Asymmetric Private Key", + "shortDescription": { + "text": "-----BEGIN ((EC|PGP|DSA|RSA|OPENSSH) )?PRIVATE KEY( BLOCK)?-----" + } + }, + { + "id": "", + "name": "Google API key", + "shortDescription": { + "text": "AIza[0-9A-Za-z\\\\-_]{35}" + } + }, + { + "id": "", + "name": "Google (GCP) Service Account", + "shortDescription": { + "text": "\"type\": \"service_account\"" + } + }, + { + "id": "", + "name": "Heroku API key", + "shortDescription": { + "text": "(?i)heroku(.{0,20})?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}" + } + }, + { + "id": "", + "name": "MailChimp API key", + "shortDescription": { + "text": "(?i)(mailchimp|mc)(.{0,20})?[0-9a-f]{32}-us[0-9]{1,2}" + } + }, + { + "id": "", + "name": "Mailgun API key", + "shortDescription": { + "text": "((?i)(mailgun|mg)(.{0,20})?)?key-[0-9a-z]{32}" + } + }, + { + "id": "", + "name": "PayPal Braintree access token", + "shortDescription": { + "text": "access_token\\$production\\$[0-9a-z]{16}\\$[0-9a-f]{32}" + } + }, + { + "id": "", + "name": "Picatic API key", + "shortDescription": { + "text": "sk_live_[0-9a-z]{32}" + } + }, + { + "id": "", + "name": "SendGrid API Key", + "shortDescription": { + "text": "SG\\.[\\w_]{16,32}\\.[\\w_]{16,64}" + } + }, + { + "id": "", + "name": "Slack Webhook", + "shortDescription": { + "text": "https://hooks.slack.com/services/T[a-zA-Z0-9_]{8}/B[a-zA-Z0-9_]{8,12}/[a-zA-Z0-9_]{24}" + } + }, + { + "id": "", + "name": "Stripe API key", + "shortDescription": { + "text": "(?i)stripe(.{0,20})?[sr]k_live_[0-9a-zA-Z]{24}" + } + }, + { + "id": "", + "name": "Square access token", + "shortDescription": { + "text": "sq0atp-[0-9A-Za-z\\-_]{22}" + } + }, + { + "id": "", + "name": "Square OAuth secret", + "shortDescription": { + "text": "sq0csp-[0-9A-Za-z\\\\-_]{43}" + } + }, + { + "id": "", + "name": "Twilio API key", + "shortDescription": { + "text": "(?i)twilio(.{0,20})?SK[0-9a-f]{32}" + } + }, + { + "id": "", + "name": "Dynatrace ttoken", + "shortDescription": { + "text": "dt0[a-zA-Z]{1}[0-9]{2}\\.[A-Z0-9]{24}\\.[A-Z0-9]{64}" + } + }, + { + "id": "", + "name": "Shopify shared secret", + "shortDescription": { + "text": "shpss_[a-fA-F0-9]{32}" + } + }, + { + "id": "", + "name": "Shopify access token", + "shortDescription": { + "text": "shpat_[a-fA-F0-9]{32}" + } + }, + { + "id": "", + "name": "Shopify custom app access token", + "shortDescription": { + "text": "shpca_[a-fA-F0-9]{32}" + } + }, + { + "id": "", + "name": "Shopify private app access token", + "shortDescription": { + "text": "shppa_[a-fA-F0-9]{32}" + } + }, + { + "id": "", + "name": "PyPI upload token", + "shortDescription": { + "text": "pypi-AgEIcHlwaS5vcmc[A-Za-z0-9-_]{50,1000}" + } + } + ] + } + }, + "results": [ + { + "message": { + "text": " has detected secret for file gitleaks_bad_01.txt." + }, + "ruleId": "", + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "gitleaks_bad_01.txt" + }, + "region": { + "startLine": 0, + "startColumn": 21, + "endLine": 0, + "endColumn": 40, + "snippet": { + "text": "AROA47DSWDEZA3RQASWB" + } + } + } + } + ], + "partialFingerprints": { + "commitSha": "", + "email": "", + "author": "", + "date": "", + "commitMessage": "" + } + } + ] + } + ] +} diff --git a/.automation/test/sarif_reports/REPOSITORY_TRIVY.sarif b/.automation/test/sarif_reports/REPOSITORY_TRIVY.sarif new file mode 100644 index 00000000000..e69de29bb2d diff --git a/.automation/test/sarif_reports/TERRAFORM_CHECKOV.sarif b/.automation/test/sarif_reports/TERRAFORM_CHECKOV.sarif new file mode 100644 index 00000000000..4e74d850102 --- /dev/null +++ b/.automation/test/sarif_reports/TERRAFORM_CHECKOV.sarif @@ -0,0 +1 @@ +{"$schema": "https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json", "version": "2.1.0", "runs": [{"tool": {"driver": {"name": "Checkov", "version": "2.0.639", "informationUri": "https://checkov.io", "rules": [], "organization": "bridgecrew"}}, "results": []}]} \ No newline at end of file diff --git a/.automation/test/sarif_reports/TSX_ESLINT.sarif b/.automation/test/sarif_reports/TSX_ESLINT.sarif new file mode 100644 index 00000000000..a4c0a4550f1 --- /dev/null +++ b/.automation/test/sarif_reports/TSX_ESLINT.sarif @@ -0,0 +1,53 @@ +{ + "version": "2.1.0", + "$schema": "http://json.schemastore.org/sarif-2.1.0-rtm.4", + "runs": [ + { + "tool": { + "driver": { + "name": "ESLint", + "informationUri": "https://eslint.org", + "rules": [] + } + }, + "artifacts": [ + { + "location": { + "uri": "file:///github/workspace/tsx_bad_1.tsx" + } + } + ], + "results": [], + "invocations": [ + { + "toolConfigurationNotifications": [ + { + "level": "error", + "message": { + "text": "Parsing error: 'import' and 'export' may appear only with 'sourceType: module'" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///github/workspace/tsx_bad_1.tsx", + "index": 0 + }, + "region": { + "startLine": 3, + "startColumn": 1 + } + } + } + ], + "descriptor": { + "id": "ESL0999" + } + } + ], + "executionSuccessful": false + } + ] + } + ] +} \ No newline at end of file diff --git a/.automation/test/sarif_reports/TYPESCRIPT_ES.sarif b/.automation/test/sarif_reports/TYPESCRIPT_ES.sarif new file mode 100644 index 00000000000..bff228fba8b --- /dev/null +++ b/.automation/test/sarif_reports/TYPESCRIPT_ES.sarif @@ -0,0 +1,53 @@ +{ + "version": "2.1.0", + "$schema": "http://json.schemastore.org/sarif-2.1.0-rtm.4", + "runs": [ + { + "tool": { + "driver": { + "name": "ESLint", + "informationUri": "https://eslint.org", + "rules": [] + } + }, + "artifacts": [ + { + "location": { + "uri": "file:///github/workspace/typescript_bad_1.ts" + } + } + ], + "results": [], + "invocations": [ + { + "toolConfigurationNotifications": [ + { + "level": "error", + "message": { + "text": "Parsing error: Unexpected token :" + }, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": "file:///github/workspace/typescript_bad_1.ts", + "index": 0 + }, + "region": { + "startLine": 1, + "startColumn": 26 + } + } + } + ], + "descriptor": { + "id": "ESL0999" + } + } + ], + "executionSuccessful": false + } + ] + } + ] +} \ No newline at end of file diff --git a/.automation/test/terraform_terrascan/bad/terraform_bad_2.tf b/.automation/test/terraform_terrascan/bad/terraform_bad_2.tf new file mode 100644 index 00000000000..b328f095ade --- /dev/null +++ b/.automation/test/terraform_terrascan/bad/terraform_bad_2.tf @@ -0,0 +1,8 @@ +resource "aws_instance" "instanceWithNoVpc" { + ami = "some-id" + instance_type = "t2.micro" + + tags = { + Name = "HelloWorld2" + } +} diff --git a/.automation/test/terraform_terrascan/good/terraform_good_2.tf b/.automation/test/terraform_terrascan/good/terraform_good_2.tf new file mode 100644 index 00000000000..8b55a1d7840 --- /dev/null +++ b/.automation/test/terraform_terrascan/good/terraform_good_2.tf @@ -0,0 +1,17 @@ +resource "aws_instance" "instanceWithVpc" { + ami = "some-id" + instance_type = "t2.micro" + monitoring = true + vpc_security_group_ids = ["sg-12345678901234567"] + subnet_id = "subnet-12345678901234567" + ebs_optimized = "true" + + metadata_options { + http_tokens = "required" + http_endpoint = "enabled" + } + + tags = { + Name = "HelloWorld2" + } +} diff --git a/.automation/test/trivy/bad/package-lock.json b/.automation/test/trivy/bad/package-lock.json new file mode 100644 index 00000000000..e1f3a29a229 --- /dev/null +++ b/.automation/test/trivy/bad/package-lock.json @@ -0,0 +1,138 @@ +{ + "name": "bad", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "tar": "^6.0.1" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", + "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", + "dependencies": { + "chownr": "^1.1.3", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + }, + "dependencies": { + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "tar": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.1.tgz", + "integrity": "sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q==", + "requires": { + "chownr": "^1.1.3", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.0", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } +} diff --git a/.automation/test/trivy/bad/package.json b/.automation/test/trivy/bad/package.json new file mode 100644 index 00000000000..d27eb0f729e --- /dev/null +++ b/.automation/test/trivy/bad/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "tar": "^6.0.1" + } +} diff --git a/.automation/test/trivy/good/package-lock.json b/.automation/test/trivy/good/package-lock.json new file mode 100644 index 00000000000..01bd58bc1e6 --- /dev/null +++ b/.automation/test/trivy/good/package-lock.json @@ -0,0 +1,141 @@ +{ + "name": "good", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "tar": "^6.1.11" + } + }, + "node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dependencies": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dependencies": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.5.tgz", + "integrity": "sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } +} diff --git a/.automation/test/trivy/good/package.json b/.automation/test/trivy/good/package.json new file mode 100644 index 00000000000..06b5fec3ff3 --- /dev/null +++ b/.automation/test/trivy/good/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "tar": "^6.1.11" + } +} diff --git a/.automation/test/yaml_schema/good/action.yml b/.automation/test/yaml_schema/good/action.yml index 2f383308c7a..ed76fc59549 100644 --- a/.automation/test/yaml_schema/good/action.yml +++ b/.automation/test/yaml_schema/good/action.yml @@ -6,7 +6,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter:v5" + image: "docker://oxsecurity/megalinter:v6" branding: icon: "check" color: "green" diff --git a/.automation/upload-docker.sh b/.automation/upload-docker.sh index 2242623959b..432e30a3698 100755 --- a/.automation/upload-docker.sh +++ b/.automation/upload-docker.sh @@ -26,6 +26,7 @@ GCR_TOKEN="${GCR_TOKEN}" # Password to login to GitHub package r REGISTRY="${REGISTRY}" # What registry to upload | or IMAGE_REPO="${IMAGE_REPO}" # Image repo to upload the image IMAGE_VERSION="${IMAGE_VERSION}" # Version to tag the image +ALWAYS_BUILD="${ALWAYS_BUILD}" # Always build image even if another has been found DOCKERFILE_PATH="${DOCKERFILE_PATH}" # Path to the Dockerfile to be uploaded MAJOR_TAG='' # Major tag version if we need to update it UPDATE_MAJOR_TAG=0 # Flag to deploy the major tag version as well @@ -34,6 +35,7 @@ DOCKER_IMAGE_REPO='' # Docker tag for the image when created GCR_IMAGE_REPO='' # Docker tag for the image when created FOUND_IMAGE=0 # Flag for if the image has already been built CONTAINER_URL='' # Final URL to upload +SQUASH="${SQUASH}" # if true, calls docker build with --squash ########################################################### # Dynamic build variables to pass to container when built # @@ -44,6 +46,13 @@ BUILD_VERSION='' ((LOG_TRACE = LOG_DEBUG = LOG_VERBOSE = LOG_NOTICE = LOG_WARN = LOG_ERROR = "true")) # Enable all loging export LOG_TRACE LOG_DEBUG LOG_VERBOSE LOG_NOTICE LOG_WARN LOG_ERROR +EXTRA_DOCKER_BUILD_ARGS="" +# Manage --squash parameter +if [[ ${SQUASH} == "true" ]]; then + EXTRA_DOCKER_BUILD_ARGS="--squash" +fi +export EXTRA_DOCKER_BUILD_ARGS + ######################### # Source Function Files # ######################### @@ -306,7 +315,7 @@ BuildImage() { ################### # Build the image # ################### - docker build --no-cache --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${BUILD_REVISION}" --build-arg "BUILD_VERSION=${BUILD_VERSION}" -t "${CONTAINER_URL}:${IMAGE_VERSION}" -f "${DOCKERFILE_PATH}" . 2>&1 + docker build $EXTRA_DOCKER_BUILD_ARGS --no-cache --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${BUILD_REVISION}" --build-arg "BUILD_VERSION=${BUILD_VERSION}" -t "${CONTAINER_URL}:${IMAGE_VERSION}" -f "${DOCKERFILE_PATH}" . 2>&1 ####################### # Load the error code # @@ -331,8 +340,8 @@ BuildImage() { # docker tag "${CONTAINER_URL}:${IMAGE_VERSION}" "${CONTAINER_URL}:latest" # Tag the image with the major tag & latest tag as well - docker build --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${BUILD_REVISION}" --build-arg "BUILD_VERSION=${MAJOR_TAG}" -t "${CONTAINER_URL}:latest" -f "${DOCKERFILE_PATH}" . 2>&1 - docker build --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${BUILD_REVISION}" --build-arg "BUILD_VERSION=${MAJOR_TAG}" -t "${CONTAINER_URL}:${MAJOR_TAG}" -f "${DOCKERFILE_PATH}" . 2>&1 + docker build $EXTRA_DOCKER_BUILD_ARGS --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${BUILD_REVISION}" --build-arg "BUILD_VERSION=${MAJOR_TAG}" -t "${CONTAINER_URL}:latest" -f "${DOCKERFILE_PATH}" . 2>&1 + docker build $EXTRA_DOCKER_BUILD_ARGS --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${BUILD_REVISION}" --build-arg "BUILD_VERSION=${MAJOR_TAG}" -t "${CONTAINER_URL}:${MAJOR_TAG}" -f "${DOCKERFILE_PATH}" . 2>&1 ####################### # Load the error code # @@ -368,7 +377,7 @@ BuildImage() { ################### # Build the image # ################### - docker build --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${BUILD_REVISION}" --build-arg "BUILD_VERSION=${BUILD_VERSION}" -t "${ADDITIONAL_URL}:${IMAGE_VERSION}" -f "${DOCKERFILE_PATH}" . 2>&1 + docker build $EXTRA_DOCKER_BUILD_ARGS --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${BUILD_REVISION}" --build-arg "BUILD_VERSION=${BUILD_VERSION}" -t "${ADDITIONAL_URL}:${IMAGE_VERSION}" -f "${DOCKERFILE_PATH}" . 2>&1 ####################### # Load the error code # @@ -393,8 +402,8 @@ BuildImage() { ################### # Build the image with latest tags# ################### - docker build --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${BUILD_REVISION}" --build-arg "BUILD_VERSION=${MAJOR_TAG}" -t "${ADDITIONAL_URL}:latest" -f "${DOCKERFILE_PATH}" . 2>&1 - docker build --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${BUILD_REVISION}" --build-arg "BUILD_VERSION=${MAJOR_TAG}" -t "${ADDITIONAL_URL}:${MAJOR_TAG}" -f "${DOCKERFILE_PATH}" . 2>&1 + docker build $EXTRA_DOCKER_BUILD_ARGS --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${BUILD_REVISION}" --build-arg "BUILD_VERSION=${MAJOR_TAG}" -t "${ADDITIONAL_URL}:latest" -f "${DOCKERFILE_PATH}" . 2>&1 + docker build $EXTRA_DOCKER_BUILD_ARGS --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${BUILD_REVISION}" --build-arg "BUILD_VERSION=${MAJOR_TAG}" -t "${ADDITIONAL_URL}:${MAJOR_TAG}" -f "${DOCKERFILE_PATH}" . 2>&1 ####################### # Load the error code # @@ -606,7 +615,12 @@ ValidateInput ############################### # Find Image if already built # ############################### -FindBuiltImage +if [ "$ALWAYS_BUILD" != "force" ]; then + FindBuiltImage +else + FOUND_IMAGE=1 + echo "skip find build image as ALWAYS_BUILD is force" +fi ################### # Build the image # diff --git a/.cspell.json b/.cspell.json index a3cf2c2ccce..45e08ede4b1 100644 --- a/.cspell.json +++ b/.cspell.json @@ -18,8 +18,14 @@ "ACTIONLINT", "ADDITIONAL", "AFFERO", + "AGPA", "AGPL", + "AIPA", + "AKIA", + "ANPA", + "ANVA", "ARMTTK", + "AROA", "Additional", "Affero", "Aftertabs", @@ -37,6 +43,7 @@ "BUILTINS", "Berkers", "Bmegalinter", + "Braintree", "Breporters", "Bubley", "CHECKOV", @@ -76,19 +83,23 @@ "Csrf", "C\u00e9dric", "DARTANALYZER", + "DEVSKIM", "DIRC", "DOCKERFILELINT", "DOCTEST", "DOTENV", "DRMAA", "DTDs", + "DUSTILOCK", "Dependabot", "Devcontainer", "Dmegalinter", "Dockerfiles", "Dockerhub", "Dockle", + "Dustilock", "Dxml", + "Dynatrace", "EDITORCONFIG", "EEXIT", "EMTEX", @@ -102,11 +113,14 @@ "FILEIO", "FIRSTPARTY", "Fmegalinter", + "GITLEAKS", "GOLANGCI", + "GOODCHECK", "GOPATH", "GOROOT", "Gcss", "Gdns", + "Gitleaks", "Globstar", "Gmegalinter", "Grachev", @@ -118,6 +132,7 @@ "Hadolint", "Hardcoding", "Hashi", + "Hlwa", "Hmegalinter", "Htest", "Hyph", @@ -133,10 +148,18 @@ "Jenkinsfile", "Jens", "KICS", + "KNNXNNXO", + "KNNXXO", + "KNXNX", "KONDO", "KTLINT", "KUBERNETES", "KUBEVAL", + "KXNNN", + "KXXN", + "KXXXX", + "KXXXXNXXX", + "KXXXXXXXXXXK", "Klingenberg", "Ktlint", "Kubernetes", @@ -155,6 +178,8 @@ "MARKDOWNLINT", "MODULEPATH", "MPAF", + "Mailchimp", + "Mailgun", "Mmegalinter", "Moar", "Mspell", @@ -167,6 +192,8 @@ "Nextflow", "OPENAPI", "OPTIONNAME", + "OXXXX", + "Okxo", "Omeed", "Overridable", "PCPCS", @@ -193,6 +220,7 @@ "Paren", "Pathto", "Phive", + "Picatic", "Pluggable", "Positionals", "Protolint", @@ -205,6 +233,7 @@ "RAKULIB", "RELASE", "RISSUE", + "ROOTPATH", "RSTCHECK", "RSTFMT", "RUBOCOP", @@ -213,13 +242,16 @@ "Raku", "Rakudo", "Rhysd", + "Rscript", "Rubo", "Rubocop", + "SBOM", "SCALAFIX", "SCATTERITEMS", "SCRIPTDIR", "SDLC", "SECRETLINT", + "SEMGREP", "SFDC", "SFDX", "SHELLCHECK", @@ -235,9 +267,12 @@ "STYLELINT", "SUBCOMMAND", "SWIFTLINT", + "SYFT", "Satoshi", "Scalafix", + "Semgrep", "Shellcheck", + "Signup", "Singleline", "Snakefile", "Snakemake", @@ -248,6 +283,7 @@ "Sublicensing", "Successful", "Swinnerton", + "Syft", "Symlinks", "Syntastic", "TEKTON", @@ -269,6 +305,7 @@ "Thielemann", "Tibanna", "Trivy", + "Twilio", "UNSECURE", "VARNAME", "VBDOTNET", @@ -278,6 +315,7 @@ "WORKDIR", "Wsnakemake", "Wtreports", + "XNXXXXXXXXX", "YAMLLINT", "YMLs", "YOURBRANCH", @@ -320,6 +358,7 @@ "assignuser", "autocorrect", "autocrlf", + "autofix", "autoload", "autoloader", "automagically", @@ -327,6 +366,7 @@ "babashka", "backticks", "backtrace", + "baprs", "basename", "basenames", "basepath", @@ -399,6 +439,7 @@ "codeclimate", "codecov", "codenarcargs", + "codeql", "codestyle", "coffeelint", "collectd", @@ -442,6 +483,7 @@ "dera", "descriptionless", "devcontainer", + "devskim", "dimen", "dimendef", "direnv", @@ -470,6 +512,7 @@ "dtdvalid", "dtdvalidfpi", "dupl", + "dustilock", "dzhu", "ecrc", "editorconfig", @@ -491,6 +534,7 @@ "errexam", "errno", "erroron", + "esac", "eslintcache", "eslintconfig", "eslintignore", @@ -505,6 +549,7 @@ "execfile", "exitstatus", "expandafter", + "expressjs", "extglob", "extraheader", "exts", @@ -553,6 +598,7 @@ "gitattributes", "gitblame", "gitlab", + "gitleaks", "gitmodified", "gitpython", "gitstaged", @@ -571,6 +617,7 @@ "golandci", "golangci", "golint", + "goodcheck", "goodwithtech", "gosec", "govet", @@ -608,6 +655,7 @@ "imple", "importlib", "imurmurhash", + "iname", "includeonly", "includeorder", "inimal", @@ -649,6 +697,7 @@ "jupyfmt", "jwiebalk", "kdocs", + "keygen", "keyserver", "keyservers", "kics", @@ -664,6 +713,7 @@ "kuhyenmk", "kustomize", "kwargs", + "kxdddddddoc", "lacheck", "langserver", "leavevmode", @@ -686,6 +736,7 @@ "linelength", "linesep", "linterrc", + "linterversion", "lintignore", "lintr", "lintrc", @@ -695,16 +746,21 @@ "listoftables", "loaddtd", "localrc", + "lodddddddxk", "logallrefupdates", "logilab", "loging", "loglevel", + "looo", + "looool", "lstlisting", "lttng", "luacheck", "luacheckrc", "luajit", "luarocks", + "mailchimp", + "mailgun", "makeatletter", "makeatother", "makeconfig", @@ -749,9 +805,11 @@ "myfile", "myint", "mymodule", + "myoutputfile", "mypackage", "myproject", "mypy", + "myrepository", "myrulesfolder", "natbib", "nbbytes", @@ -770,6 +828,7 @@ "nocompact", "noconfig", "nodefdtd", + "nodejsscan", "nodockerpull", "noediting", "noenc", @@ -812,6 +871,7 @@ "onecolumn", "onstart", "oohhsyyo", + "oool", "openapi", "openapirc", "opencontainers", @@ -833,6 +893,8 @@ "overgeneral", "overridden", "overtrue", + "owasp", + "oxsecurity", "oyys", "oyyy", "packagename", @@ -891,6 +953,7 @@ "protolintrc", "pseudoname", "psscriptanalyzer", + "purrr", "pushsmall", "pushtabs", "pwsh", @@ -903,7 +966,9 @@ "pygtk", "pylint", "pylint's", + "pylintrc", "pymdownx", + "pypi", "pyproject", "pyreverse", "pytablewriter", @@ -942,6 +1007,9 @@ "replicatedhq", "repos", "repositoryformatversion", + "reqparse", + "reqs", + "returncode", "returnrules", "rexec", "risd", @@ -971,6 +1039,7 @@ "saas", "sarif", "sbatch", + "sbom", "scalac", "scalafix", "scattergather", @@ -983,6 +1052,7 @@ "secretlintrc", "selectfont", "semanticdb", + "semgrep", "separated", "serverhost", "serverport", @@ -1000,6 +1070,10 @@ "shopt", "shortintertext", "showversion", + "shpat", + "shpca", + "shppa", + "shpss", "simplexml", "slshape", "smallskip", @@ -1035,6 +1109,7 @@ "stoplightio", "strconv", "strerror", + "strftime", "struct", "styleline", "stylelint", @@ -1054,6 +1129,7 @@ "suppressionxpathfilter", "svnblame", "swiftlint", + "syft", "symlink", "symlinks", "syntastic", @@ -1094,6 +1170,7 @@ "tikzpicture", "tipa", "tlsv", + "todov", "tojson", "tokenizes", "toolchain", @@ -1110,7 +1187,9 @@ "tsqllint", "tsqllintrc", "ttfamily", + "ttoken", "twemoji", + "twilio", "twocolumn", "twolfson", "typeof", @@ -1139,6 +1218,7 @@ "utteranc", "varfile", "vbdotnet", + "vcmc", "venv", "verbatiminput", "verbatimtab", @@ -1163,9 +1243,11 @@ "wipeverb", "workdir", "workerpool", + "workspacec", "wrappy", "wscript", "xargs", + "xdist", "xinclude", "xmlout", "xmlwriter", @@ -1182,10 +1264,11 @@ "ysysss", "zaach", "zkoppert", + "zricethezav", "zyaml", "\u03f0linters", "\u04bbcoffeescript", "\u0636clojure", "\u077bcbad" ] -} +} \ No newline at end of file diff --git a/.dockerfilelintrc b/.dockerfilelintrc deleted file mode 100644 index 70f6afc0848..00000000000 --- a/.dockerfilelintrc +++ /dev/null @@ -1,4 +0,0 @@ ---- -rules: - # Base images should not use the latest tag - latest_tag: off diff --git a/.github/linters/.python-lint b/.github/linters/.pylintrc similarity index 88% rename from .github/linters/.python-lint rename to .github/linters/.pylintrc index e3d9f5b5791..024390c2af2 100644 --- a/.github/linters/.python-lint +++ b/.github/linters/.pylintrc @@ -55,79 +55,7 @@ confidence= # --enable=similarities". If you want to run only the classes checker, but have # no Warning level messages displayed, use"--disable=all --enable=classes # --disable=W" -disable=print-statement, - parameter-unpacking, - unpacking-in-except, - old-raise-syntax, - backtick, - long-suffix, - old-ne-operator, - old-octal-literal, - import-star-module-level, - non-ascii-bytes-literal, - raw-checker-failed, - bad-inline-option, - locally-disabled, - locally-enabled, - file-ignored, - suppressed-message, - useless-suppression, - deprecated-pragma, - apply-builtin, - basestring-builtin, - buffer-builtin, - cmp-builtin, - coerce-builtin, - execfile-builtin, - file-builtin, - long-builtin, - raw_input-builtin, - reduce-builtin, - standarderror-builtin, - unicode-builtin, - xrange-builtin, - coerce-method, - delslice-method, - getslice-method, - setslice-method, - no-absolute-import, - old-division, - dict-iter-method, - dict-view-method, - next-method-called, - metaclass-assignment, - indexing-exception, - raising-string, - reload-builtin, - oct-method, - hex-method, - nonzero-method, - cmp-method, - input-builtin, - round-builtin, - intern-builtin, - unichr-builtin, - map-builtin-not-iterating, - zip-builtin-not-iterating, - range-builtin-not-iterating, - filter-builtin-not-iterating, - using-cmp-argument, - eq-without-hash, - div-method, - idiv-method, - rdiv-method, - exception-message-attribute, - invalid-str-codec, - sys-max-int, - bad-python3-import, - deprecated-string-function, - deprecated-str-translate-call, - deprecated-itertools-function, - deprecated-types-field, - next-method-defined, - dict-items-not-iterating, - dict-keys-not-iterating, - dict-values-not-iterating +# disable= # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option diff --git a/.github/linters/goodcheck.yml b/.github/linters/goodcheck.yml new file mode 100644 index 00000000000..fa4cd995e43 --- /dev/null +++ b/.github/linters/goodcheck.yml @@ -0,0 +1,17 @@ +rules: + # id, pattern, message are required attributes. + - id: example.github + pattern: Github + message: Do you want to write GitHub? + glob: + - "**/*" + fail: + - Signup via Github + pass: + - Signup via GitHub + +# You can skip checking files. +exclude: + - node_modules + - vendor + - "**/goodcheck.yml" diff --git a/.github/linters/java-pmd-ruleset.xml b/.github/linters/java-pmd-ruleset.xml new file mode 100644 index 00000000000..a1ed0ec28a8 --- /dev/null +++ b/.github/linters/java-pmd-ruleset.xml @@ -0,0 +1,21 @@ + + + + Default RuleSet for MegaLinter + + + .*/java-domainbuilder/*.* + .*/app-setup/*.* + .*/fflib_*.* + .*/json2java/*.* + + + + + + + + + + + \ No newline at end of file diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 66ee19bbc61..92b902e8c59 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -4,7 +4,7 @@ template: | # Changelog $CHANGES - See details of [all code changes](https://github.com/megalinter/megalinter/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION) since previous release + See details of [all code changes](https://github.com/oxsecurity/megalinter/compare/$PREVIOUS_TAG...v$RESOLVED_VERSION) since previous release categories: - title: "🚀 Features" diff --git a/.github/workflows/auto-update-linters.yml b/.github/workflows/auto-update-linters.yml index fa32ace8faf..3169fdde545 100644 --- a/.github/workflows/auto-update-linters.yml +++ b/.github/workflows/auto-update-linters.yml @@ -25,7 +25,7 @@ jobs: # Set the agent to run on runs-on: ubuntu-latest # Prevent duplicate run from happening when a forked push is committed - if: (github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository) && github.repository == 'megalinter/megalinter' + if: (github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository) && github.repository == 'oxsecurity/megalinter' # Set max build time for the job timeout-minutes: 60 ################## @@ -36,7 +36,7 @@ jobs: # Checkout the code base # ########################## - name: Checkout Code - uses: actions/checkout@v3.0.1 + uses: actions/checkout@v3 with: # Full git history is needed to get a proper list of changed files within `mega-linter` fetch-depth: 0 @@ -52,7 +52,7 @@ jobs: ################################### - name: Build image shell: bash - run: docker build --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=auto_update_${GITHUB_SHA}" --build-arg "BUILD_VERSION=auto_update_${GITHUB_SHA}" --no-cache -t megalinter/megalinter:auto_update_${GITHUB_SHA} . | while read line ; do echo "$(date +'%H:%M:%S')| $line"; done; + run: docker build --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=auto_update_${GITHUB_SHA}" --build-arg "BUILD_VERSION=auto_update_${GITHUB_SHA}" --no-cache -t oxsecurity/megalinter:auto_update_${GITHUB_SHA} . | while read line ; do echo "$(date +'%H:%M:%S')| $line"; done; timeout-minutes: 60 ##################################### @@ -61,7 +61,7 @@ jobs: - name: Collect latest versions and help id: compute_versions shell: bash - run: docker run -e UPGRADE_LINTERS_VERSION=true -e GITHUB_SHA=${GITHUB_SHA} -e PAT="${{secrets.PAT}}" -e MEGALINTER_VOLUME_ROOT="${GITHUB_WORKSPACE}" -v "/var/run/docker.sock:/var/run/docker.sock:rw" -v ${GITHUB_WORKSPACE}:/tmp/lint megalinter/megalinter:auto_update_${GITHUB_SHA} + run: docker run -e UPGRADE_LINTERS_VERSION=true -e GITHUB_SHA=${GITHUB_SHA} -e PAT="${{secrets.PAT}}" -e MEGALINTER_VOLUME_ROOT="${GITHUB_WORKSPACE}" -v "/var/run/docker.sock:/var/run/docker.sock:rw" -v ${GITHUB_WORKSPACE}:/tmp/lint oxsecurity/megalinter:auto_update_${GITHUB_SHA} timeout-minutes: 20 # Upload MegaLinter artifacts diff --git a/.github/workflows/automerge-dependabot.yml b/.github/workflows/automerge-dependabot.yml index 20435da76c7..6a4e046eebe 100644 --- a/.github/workflows/automerge-dependabot.yml +++ b/.github/workflows/automerge-dependabot.yml @@ -27,7 +27,7 @@ jobs: automerge: name: automerge dependabot runs-on: ubuntu-latest - if: github.actor == 'dependabot[bot]' && github.repository == 'megalinter/megalinter' + if: github.actor == 'dependabot[bot]' && github.repository == 'oxsecurity/megalinter' steps: - name: Wait for CI/CT/CD to succeed uses: fountainhead/action-wait-for-check@v1.0.0 diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index ac02cde0201..d48d11c8646 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -20,7 +20,7 @@ on: jobs: automerge: runs-on: ubuntu-latest - if: github.repository == 'megalinter/megalinter' + if: github.repository == 'oxsecurity/megalinter' steps: - name: automerge env: diff --git a/.github/workflows/build-deploy-docs.yml b/.github/workflows/build-deploy-docs.yml index 91a505eece5..211f0a4e05b 100644 --- a/.github/workflows/build-deploy-docs.yml +++ b/.github/workflows/build-deploy-docs.yml @@ -19,9 +19,9 @@ jobs: deploy: runs-on: ubuntu-latest - if: github.repository == 'megalinter/megalinter' + if: github.repository == 'oxsecurity/megalinter' steps: - - uses: actions/checkout@v3.0.1 + - uses: actions/checkout@v3 with: fetch-depth: 0 - uses: actions/setup-python@v3.1.2 @@ -35,18 +35,4 @@ jobs: git config --global user.email megalinter@megalinter.com - run: mike deploy beta --push - git-sync: - runs-on: ubuntu-latest - needs: deploy - steps: - - name: git-sync - uses: wei/git-sync@v3 - with: - source_repo: "megalinter/megalinter" - source_branch: "gh-pages" - destination_repo: "git@github.com:megalinter/megalinter.github.io.git" - destination_branch: "gh-pages" - # ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }} # optional - # source_ssh_private_key: ${{ secrets.SOURCE_SSH_PRIVATE_KEY }} # optional, will override `SSH_PRIVATE_KEY` - destination_ssh_private_key: ${{ secrets.MEGALINTER_GITHUB_IO_SSH_PRIVATE_KEY }} # optional, will override `SSH_PRIVATE_KEY` \ No newline at end of file diff --git a/.github/workflows/deploy-ALPHA-flavors.yml b/.github/workflows/deploy-ALPHA-flavors.yml index a906b430e95..521f6435e40 100644 --- a/.github/workflows/deploy-ALPHA-flavors.yml +++ b/.github/workflows/deploy-ALPHA-flavors.yml @@ -45,13 +45,13 @@ jobs: # Set the agent to run on runs-on: ${{ matrix.os }} strategy: + fail-fast: false matrix: os: [ubuntu-latest] # flavors-start flavor: [ "ci_light", - "dart", "documentation", "dotnet", "go", @@ -62,13 +62,12 @@ jobs: "ruby", "rust", "salesforce", - "scala", "swift", "terraform", ] # flavors-end # Only run this on the main repo - if: github.repository == 'megalinter/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') + if: github.repository == 'oxsecurity/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') ################## # Load all steps # ################## @@ -77,7 +76,7 @@ jobs: # Checkout the code base # ########################## - name: Checkout Code - uses: actions/checkout@v3.0.1 + uses: actions/checkout@v3 with: fetch-depth: 0 @@ -89,10 +88,11 @@ jobs: # Set the Env Vars DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - IMAGE_REPO: megalinter/megalinter-${{ matrix.flavor }} + IMAGE_REPO: oxsecurity/megalinter-${{ matrix.flavor }} IMAGE_VERSION: alpha DOCKERFILE_PATH: flavors/${{ matrix.flavor }}/Dockerfile REGISTRY: Docker + SQUASH: "true" shell: bash run: .automation/upload-docker.sh @@ -107,9 +107,9 @@ jobs: # Check Docker image security with Trivy # ############################################## - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@0.0.18 + uses: aquasecurity/trivy-action@master with: - image-ref: 'docker.io/megalinter/megalinter-${{ matrix.flavor }}:alpha' + image-ref: 'docker.io/oxsecurity/megalinter-${{ matrix.flavor }}:alpha' format: 'table' exit-code: '1' ignore-unfixed: true diff --git a/.github/workflows/deploy-ALPHA.yml b/.github/workflows/deploy-ALPHA.yml index fafe2d6e606..18416a6743c 100644 --- a/.github/workflows/deploy-ALPHA.yml +++ b/.github/workflows/deploy-ALPHA.yml @@ -45,7 +45,7 @@ jobs: # Set the agent to run on runs-on: ubuntu-latest # Only run this on the main repo - if: github.repository == 'megalinter/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') + if: github.repository == 'oxsecurity/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') environment: name: alpha ################## @@ -56,7 +56,7 @@ jobs: # Checkout the code base # ########################## - name: Checkout Code - uses: actions/checkout@v3.0.1 + uses: actions/checkout@v3 with: fetch-depth: 0 @@ -68,7 +68,7 @@ jobs: # Set the Env Vars DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - IMAGE_REPO: megalinter/megalinter + IMAGE_REPO: oxsecurity/megalinter IMAGE_VERSION: alpha DOCKERFILE_PATH: Dockerfile REGISTRY: Docker @@ -84,7 +84,7 @@ jobs: # Set the Env Vars GCR_USERNAME: ${{ secrets.GCR_USERNAME }} GCR_TOKEN: ${{ secrets.GCR_PASSWORD }} - IMAGE_REPO: megalinter/megalinter + IMAGE_REPO: oxsecurity/megalinter IMAGE_VERSION: alpha DOCKERFILE_PATH: Dockerfile REGISTRY: GCR @@ -102,12 +102,12 @@ jobs: # Check Docker image security with Trivy # ############################################## - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@0.0.18 + uses: aquasecurity/trivy-action@master with: - image-ref: "docker.io/megalinter/megalinter:alpha" - format: "table" - exit-code: "1" + image-ref: "docker.io/oxsecurity/megalinter:alpha" + format: 'table' + exit-code: '1' ignore-unfixed: true - vuln-type: "os,library" - severity: "CRITICAL,HIGH" - timeout: 5m0s + vuln-type: 'os,library' + severity: 'CRITICAL,HIGH' + timeout: 5m0s \ No newline at end of file diff --git a/.github/workflows/deploy-DEV-linters.yml b/.github/workflows/deploy-DEV-linters.yml new file mode 100644 index 00000000000..44fbc3d0bf9 --- /dev/null +++ b/.github/workflows/deploy-DEV-linters.yml @@ -0,0 +1,135 @@ +--- +######################### +######################### +## Deploy Docker Image Linters ## +######################### +######################### +# Documentation: +# https://help.github.com/en/articles/workflow-syntax-for-github-actions +# + +####################################### +# Start the job on all push to main # +####################################### +name: "Build & Deploy - DEV linters" +on: + push: + branches-ignore: [main] + pull_request: + branches-ignore: [] + +############### +# Set the Job # +############### +concurrency: + group: ${{ github.ref }}-${{ github.workflow }} + cancel-in-progress: true + +jobs: + + prepare: + name: Prepare matrix + runs-on: ubuntu-latest + outputs: + tag: ${{ steps.image_tag.outputs.tag }} + steps: + + - name: Build image tag name + id: image_tag + run: | + BRANCH_NAME="${GITHUB_REF##*/}" + TAG="test-${GITHUB_ACTOR}-${BRANCH_NAME}" + echo "Tag name: ${TAG}" + echo "::set-output name=tag::${TAG}" + + build: + # Name the Job + name: Deploy Docker Image - DEV - Linters + needs: prepare + # Set the agent to run on + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + # linters-start + linter: + [ + "cloudformation_cfn_lint", + "dockerfile_hadolint", + "go_revive", + "groovy_npm_groovy_lint", + "java_checkstyle", + "javascript_es", + "json_eslint_plugin_jsonc", + "jsx_eslint", + "kotlin_ktlint", + "php_psalm", + "python_bandit", + "repository_devskim", + "repository_dustilock", + "repository_gitleaks", + "repository_secretlint", + "repository_semgrep", + "repository_syft", + "repository_trivy", + "terraform_tflint", + "terraform_terrascan", + "terraform_checkov", + "tsx_eslint", + "typescript_es", + ] +# linters-end + # Only run this on the main repo + if: github.repository == 'oxsecurity/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') + ################## + # Load all steps # + ################## + steps: + ########################## + # Checkout the code base # + ########################## + - name: Checkout Code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + ##################### + # Run Deploy script # + ##################### + - name: Deploy ${{ needs.prepare.outputs.tag }} image to DockerHub + env: + # Set the Env Vars + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + IMAGE_REPO: oxsecurity/megalinter-only-${{ matrix.linter }} + IMAGE_VERSION: ${{ needs.prepare.outputs.tag }} + DOCKERFILE_PATH: linters/${{ matrix.linter }}/Dockerfile + REGISTRY: Docker + shell: bash + run: .automation/upload-docker.sh + + ##################################### + # Run Linter test cases # + ##################################### + - name: Run Test Cases + shell: bash + run: | + TEST_KEYWORDS_TO_USE_UPPER="${{ matrix.linter }}" + TEST_KEYWORDS_TO_USE="${TEST_KEYWORDS_TO_USE_UPPER,,}" + docker run -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${GITHUB_SHA} -e OUTPUT_DETAILS=detailed -e GITHUB_SHA=${GITHUB_SHA} -e PAT="${{secrets.PAT}}" -e TEST_KEYWORDS="${TEST_KEYWORDS_TO_USE}" -e MEGALINTER_VOLUME_ROOT="${GITHUB_WORKSPACE}" -v "/var/run/docker.sock:/var/run/docker.sock:rw" -v ${GITHUB_WORKSPACE}:/tmp/lint oxsecurity/megalinter-only-${{ matrix.linter }}:${{ needs.prepare.outputs.tag }} + timeout-minutes: 30 + + ############################################## + # Check Docker image security with Trivy # + ############################################## + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + image-ref: 'docker.io/oxsecurity/megalinter-only-${{ matrix.linter }}:${{ needs.prepare.outputs.tag }}' + format: 'table' + exit-code: '1' + ignore-unfixed: true + vuln-type: 'os,library' + severity: 'CRITICAL,HIGH' + timeout: 10m0s diff --git a/.github/workflows/deploy-DEV.yml b/.github/workflows/deploy-DEV.yml index 315935c6c91..9d13c78b301 100644 --- a/.github/workflows/deploy-DEV.yml +++ b/.github/workflows/deploy-DEV.yml @@ -19,7 +19,7 @@ name: "Build & Deploy - DEV" on: push: - branches-ignore: [main, alpha] + branches-ignore: [main] pull_request: branches-ignore: [] @@ -49,7 +49,7 @@ jobs: # Checkout the code base # ########################## - name: Checkout Code - uses: actions/checkout@v3.0.1 + uses: actions/checkout@v3 with: # Full git history is needed to get a proper list of changed files within `mega-linter` fetch-depth: 0 @@ -83,12 +83,12 @@ jobs: echo "Checking existence of https://hub.docker.com/v2/repositories/$1/tags/$2" curl --silent -f -lSL https://hub.docker.com/v2/repositories/$1/tags/$2 > /dev/null } - MEGA_LINTER_BASE_IMAGE="megalinter/megalinter:beta" - if docker_tag_exists megalinter/megalinter ${{steps.image_tag.outputs.tag}}; then - MEGA_LINTER_BASE_IMAGE="megalinter/megalinter:${{steps.image_tag.outputs.tag}}" + MEGA_LINTER_BASE_IMAGE="oxsecurity/megalinter:beta" + if docker_tag_exists oxsecurity/megalinter ${{steps.image_tag.outputs.tag}}; then + MEGA_LINTER_BASE_IMAGE="oxsecurity/megalinter:${{steps.image_tag.outputs.tag}}" echo "Reusing previously built image as base for quick build: ${MEGA_LINTER_BASE_IMAGE}" fi - docker build --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${GITHUB_SHA}" --build-arg "BUILD_VERSION=${GITHUB_SHA}" --build-arg "MEGALINTER_BASE_IMAGE=${MEGA_LINTER_BASE_IMAGE}" --no-cache -f "Dockerfile-quick" -t megalinter/megalinter:${{steps.image_tag.outputs.tag}} . | while read line ; do echo "$(date +'%H:%M:%S')| $line"; done; + docker build --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${GITHUB_SHA}" --build-arg "BUILD_VERSION=${GITHUB_SHA}" --build-arg "MEGALINTER_BASE_IMAGE=${MEGA_LINTER_BASE_IMAGE}" --no-cache -f "Dockerfile-quick" -t oxsecurity/megalinter:${{steps.image_tag.outputs.tag}} . | while read line ; do echo "$(date +'%H:%M:%S')| $line"; done; timeout-minutes: 60 ########################## @@ -100,7 +100,7 @@ jobs: # Set the Env Vars DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - IMAGE_REPO: megalinter/megalinter + IMAGE_REPO: oxsecurity/megalinter IMAGE_VERSION: ${{steps.image_tag.outputs.tag}} DOCKERFILE_PATH: Dockerfile-quick REGISTRY: Docker @@ -114,13 +114,13 @@ jobs: if: | ( (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name != github.repository) || - (github.event_name == 'push' && github.repository != 'megalinter/megalinter') + (github.event_name == 'push' && github.repository != 'oxsecurity/megalinter') ) && !contains(github.event.head_commit.message, 'quick build') id: docker_build shell: bash - run: docker build --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${GITHUB_SHA}" --build-arg "BUILD_VERSION=${GITHUB_SHA}" --no-cache -t megalinter/megalinter:${{steps.image_tag.outputs.tag}} . | while read line ; do echo "$(date +'%H:%M:%S')| $line"; done; + run: docker build --build-arg "BUILD_DATE=${BUILD_DATE}" --build-arg "BUILD_REVISION=${GITHUB_SHA}" --build-arg "BUILD_VERSION=${GITHUB_SHA}" --no-cache -t oxsecurity/megalinter:${{steps.image_tag.outputs.tag}} . | while read line ; do echo "$(date +'%H:%M:%S')| $line"; done; timeout-minutes: 90 #################################### @@ -130,7 +130,7 @@ jobs: if: | ( (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) || - (github.event_name == 'push' && github.repository == 'megalinter/megalinter') + (github.event_name == 'push' && github.repository == 'oxsecurity/megalinter') ) && !contains(github.event.head_commit.message, 'quick build') @@ -138,12 +138,19 @@ jobs: # Set the Env Vars DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - IMAGE_REPO: megalinter/megalinter + IMAGE_REPO: oxsecurity/megalinter IMAGE_VERSION: ${{steps.image_tag.outputs.tag}} DOCKERFILE_PATH: Dockerfile REGISTRY: Docker shell: bash - run: .automation/upload-docker.sh || true + run: .automation/upload-docker.sh + + # Free disk space + - name: Free Disk space + shell: bash + run: | + sudo rm -rf /usr/local/lib/android # will release about 10 GB if you don't need Android + sudo rm -rf /usr/share/dotnet # will release about 20GB if you don't need .NET ##################################### # Run Linter test cases # @@ -162,8 +169,8 @@ jobs: TEST_KEYWORDS_TO_USE="" fi fi - docker run $CI_ENV -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=tap -e OUTPUT_FOLDER=${GITHUB_SHA} -e OUTPUT_DETAILS=detailed -e GITHUB_SHA=${GITHUB_SHA} -e PAT="${{secrets.PAT}}" -e TEST_KEYWORDS="${TEST_KEYWORDS_TO_USE}" -e MEGALINTER_VOLUME_ROOT="${GITHUB_WORKSPACE}" -v "/var/run/docker.sock:/var/run/docker.sock:rw" -v ${GITHUB_WORKSPACE}:/tmp/lint megalinter/megalinter:${{steps.image_tag.outputs.tag}} - timeout-minutes: 30 + docker run $CI_ENV -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${GITHUB_SHA} -e OUTPUT_DETAILS=detailed -e GITHUB_SHA=${GITHUB_SHA} -e PAT="${{secrets.PAT}}" -e TEST_KEYWORDS="${TEST_KEYWORDS_TO_USE}" -e MEGALINTER_VOLUME_ROOT="${GITHUB_WORKSPACE}" -v "/var/run/docker.sock:/var/run/docker.sock:rw" -v ${GITHUB_WORKSPACE}:/tmp/lint oxsecurity/megalinter:${{steps.image_tag.outputs.tag}} + timeout-minutes: 60 ##################################### # Run Linter against ALL code base # @@ -171,8 +178,8 @@ jobs: - name: Run against all code base if: "!contains(github.event.head_commit.message, 'quick build')" shell: bash - run: docker run -e GITHUB_REPOSITORY="${{github.repository}}" -e GITHUB_SHA="${{github.sha}}" -e GITHUB_TOKEN="${{github.token}}" -e GITHUB_RUN_ID="${{github.run_id}}" -e PAT="${{secrets.PAT}}" -v "/var/run/docker.sock:/var/run/docker.sock:rw" -v ${GITHUB_WORKSPACE}:/tmp/lint megalinter/megalinter:${{steps.image_tag.outputs.tag}} - timeout-minutes: 10 + run: docker run -e GITHUB_REPOSITORY="${{github.repository}}" -e GITHUB_SHA="${{github.sha}}" -e GITHUB_TOKEN="${{github.token}}" -e GITHUB_RUN_ID="${{github.run_id}}" -e PAT="${{secrets.PAT}}" -v "/var/run/docker.sock:/var/run/docker.sock:rw" -v ${GITHUB_WORKSPACE}:/tmp/lint oxsecurity/megalinter:${{steps.image_tag.outputs.tag}} + timeout-minutes: 15 # Upload MegaLinter artifacts - name: Archive production artifacts @@ -181,7 +188,7 @@ jobs: with: name: MegaLinter reports path: | - report + megalinter-reports mega-linter.log linter-helps.json linter-versions.json @@ -198,28 +205,21 @@ jobs: node-version: "12" - name: Install NPM dependencies if: ${{ steps.docker_build.outcome }} == 'success' && !contains(github.event.head_commit.message, 'quick build') - run: cd mega-linter-runner && sudo npm ci && sudo npm link + run: cd mega-linter-runner && sudo yarn install --frozen-lockfile && sudo npm link - name: Run mega-linter-runner tests if: ${{ steps.docker_build.outcome }} == 'success' && !contains(github.event.head_commit.message, 'quick build') run: cd mega-linter-runner && MEGALINTER_RELEASE=${{steps.image_tag.outputs.tag}} MEGALINTER_NO_DOCKER_PULL=true npm run test - # Free disk space - - name: Free Disk space - shell: bash - run: | - sudo rm -rf /usr/local/lib/android # will release about 10 GB if you don't need Android - sudo rm -rf /usr/share/dotnet # will release about 20GB if you don't need .NET - ############################################## # Check Docker image security with Trivy # ############################################## - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@0.0.18 + uses: aquasecurity/trivy-action@master with: - image-ref: "docker.io/megalinter/megalinter:${{steps.image_tag.outputs.tag}}" - format: "table" - exit-code: "1" + image-ref: "docker.io/oxsecurity/megalinter:${{steps.image_tag.outputs.tag}}" + format: 'table' + exit-code: '1' ignore-unfixed: true - vuln-type: "os,library" - severity: "CRITICAL,HIGH" - timeout: 10m0s + vuln-type: 'os,library' + severity: 'CRITICAL,HIGH' + timeout: 10m0s \ No newline at end of file diff --git a/.github/workflows/deploy-PROD-flavors.yml b/.github/workflows/deploy-PROD-flavors.yml index e75b47a94a1..c3903d4218e 100644 --- a/.github/workflows/deploy-PROD-flavors.yml +++ b/.github/workflows/deploy-PROD-flavors.yml @@ -47,13 +47,13 @@ jobs: environment: name: beta-flavors strategy: + fail-fast: false matrix: os: [ubuntu-latest] # flavors-start flavor: [ "ci_light", - "dart", "documentation", "dotnet", "go", @@ -64,13 +64,13 @@ jobs: "ruby", "rust", "salesforce", - "scala", + "security", "swift", "terraform", ] # flavors-end # Only run this on the main repo - if: github.repository == 'megalinter/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') + if: github.repository == 'oxsecurity/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') ################## # Load all steps # ################## @@ -79,7 +79,7 @@ jobs: # Checkout the code base # ########################## - name: Checkout Code - uses: actions/checkout@v3.0.1 + uses: actions/checkout@v3 with: fetch-depth: 0 @@ -91,7 +91,7 @@ jobs: # Set the Env Vars DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - IMAGE_REPO: megalinter/megalinter-${{ matrix.flavor }} + IMAGE_REPO: oxsecurity/megalinter-${{ matrix.flavor }} IMAGE_VERSION: beta DOCKERFILE_PATH: flavors/${{ matrix.flavor }}/Dockerfile REGISTRY: Docker @@ -109,12 +109,12 @@ jobs: # Check Docker image security with Trivy # ############################################## - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@0.0.18 + uses: aquasecurity/trivy-action@master with: - image-ref: 'docker.io/megalinter/megalinter-${{ matrix.flavor }}:beta' + image-ref: 'docker.io/oxsecurity/megalinter-${{ matrix.flavor }}:beta' format: 'table' exit-code: '1' ignore-unfixed: true vuln-type: 'os,library' severity: 'CRITICAL,HIGH' - timeout: 5m0s + timeout: 10m0s \ No newline at end of file diff --git a/.github/workflows/deploy-PROD-linters.yml b/.github/workflows/deploy-PROD-linters.yml new file mode 100644 index 00000000000..b5d55d05570 --- /dev/null +++ b/.github/workflows/deploy-PROD-linters.yml @@ -0,0 +1,161 @@ +--- +######################### +######################### +## Deploy Docker Image Flavors ## +######################### +######################### +# Documentation: +# https://help.github.com/en/articles/workflow-syntax-for-github-actions +# + +####################################### +# Start the job on all push to main # +####################################### +name: "Build & Deploy - Beta linters" +on: + push: + branches: + - "main " + paths: + - ".github/workflows/**" + - "Dockerfile" + - "**/Dockerfile" + - "flavors/**" + - "megalinter/**" + - "mega-linter-runner/**" + - "**/linter-versions.json" + - "TEMPLATES/**" + - ".trivyignore" + - "**/*.sh" + - "**/*.py" + - "**/sh/**" + +############### +# Set the Job # +############### +concurrency: + group: ${{ github.ref }}-${{ github.workflow }} + cancel-in-progress: true + +jobs: + + prepare: + name: Prepare matrix + runs-on: ubuntu-latest + steps: + + - name: Build unique image name for beta + shell: bash + run: echo "UNIQUE_DOCKER_IMAGE_NAME=$(echo beta_$(date '+%Y%m%d-%H%M'))" >> $GITHUB_ENV + + - name: Prepare result is ${{ env.UNIQUE_DOCKER_IMAGE_NAME }} + shell: bash + run: echo ${{ env.UNIQUE_DOCKER_IMAGE_NAME }} + + outputs: + unique_docker_image_name: "${{ env.UNIQUE_DOCKER_IMAGE_NAME }}" + + build: + needs: prepare + # Name the Job + name: Deploy Docker Image - Beta - Linters + # Set the agent to run on + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + # linters-start + linter: + [ + "cloudformation_cfn_lint", + "dockerfile_hadolint", + "go_revive", + "groovy_npm_groovy_lint", + "java_checkstyle", + "javascript_es", + "json_eslint_plugin_jsonc", + "jsx_eslint", + "kotlin_ktlint", + "php_psalm", + "python_bandit", + "repository_devskim", + "repository_dustilock", + "repository_gitleaks", + "repository_secretlint", + "repository_semgrep", + "repository_syft", + "repository_trivy", + "terraform_tflint", + "terraform_terrascan", + "terraform_checkov", + "tsx_eslint", + "typescript_es", + ] +# linters-end + # Only run this on the main repo + if: github.repository == 'oxsecurity/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') + ################## + # Load all steps # + ################## + steps: + ########################## + # Checkout the code base # + ########################## + - name: Checkout Code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + ##################### + # Run Deploy script # + ##################### + - name: Deploy Beta image to DockerHub + env: + # Set the Env Vars + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + IMAGE_REPO: oxsecurity/megalinter-only-${{ matrix.linter }} + IMAGE_VERSION: beta + DOCKERFILE_PATH: linters/${{ matrix.linter }}/Dockerfile + REGISTRY: Docker + shell: bash + run: .automation/upload-docker.sh + + - name: Deploy ${{ needs.prepare.outputs.unique_docker_image_name }} image to DockerHub + env: + # Set the Env Vars + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + IMAGE_REPO: oxsecurity/megalinter-only-${{ matrix.linter }} + IMAGE_VERSION: "${{ needs.prepare.outputs.unique_docker_image_name }}" + DOCKERFILE_PATH: linters/${{ matrix.linter }}/Dockerfile + REGISTRY: Docker + ALWAYS_BUILD: force + shell: bash + run: .automation/upload-docker.sh + + ##################################### + # Run Linter test cases # + ##################################### + - name: Run Test Cases + shell: bash + run: | + TEST_KEYWORDS_TO_USE_UPPER="${{ matrix.linter }}" + TEST_KEYWORDS_TO_USE="${TEST_KEYWORDS_TO_USE_UPPER,,}" + docker run -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${GITHUB_SHA} -e OUTPUT_DETAILS=detailed -e GITHUB_SHA=${GITHUB_SHA} -e PAT="${{secrets.PAT}}" -e TEST_KEYWORDS="${TEST_KEYWORDS_TO_USE}" -e MEGALINTER_VOLUME_ROOT="${GITHUB_WORKSPACE}" -v "/var/run/docker.sock:/var/run/docker.sock:rw" -v ${GITHUB_WORKSPACE}:/tmp/lint oxsecurity/megalinter-only-${{ matrix.linter }}:beta + timeout-minutes: 30 + + ############################################## + # Check Docker image security with Trivy # + ############################################## + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + image-ref: 'docker.io/oxsecurity/megalinter-only-${{ matrix.linter }}:beta' + format: 'table' + exit-code: '1' + ignore-unfixed: true + vuln-type: 'os,library' + severity: 'CRITICAL,HIGH' + timeout: 10m0s diff --git a/.github/workflows/deploy-PROD.yml b/.github/workflows/deploy-PROD.yml index 2f4ec1c3780..d92b8540630 100644 --- a/.github/workflows/deploy-PROD.yml +++ b/.github/workflows/deploy-PROD.yml @@ -44,7 +44,7 @@ jobs: # Set the agent to run on runs-on: ubuntu-latest # Only run this on the main repo - if: github.repository == 'megalinter/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') + if: github.repository == 'oxsecurity/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') environment: name: beta ################## @@ -55,7 +55,7 @@ jobs: # Checkout the code base # ########################## - name: Checkout Code - uses: actions/checkout@v3.0.1 + uses: actions/checkout@v3 with: fetch-depth: 0 @@ -66,7 +66,7 @@ jobs: with: node-version: "12.x" registry-url: "https://registry.npmjs.org" - - run: cd mega-linter-runner && npm install + - run: cd mega-linter-runner && yarn install --frozen-lockfile - run: cd mega-linter-runner && BETAID=$(date '+%Y%m%d%H%M') && npm version prerelease --preid="beta$BETAID" shell: bash - run: cd mega-linter-runner && npm publish --tag beta || echo "mega-linter-runner beta not published" @@ -81,7 +81,7 @@ jobs: # Set the Env Vars DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - IMAGE_REPO: megalinter/megalinter + IMAGE_REPO: oxsecurity/megalinter IMAGE_VERSION: beta DOCKERFILE_PATH: Dockerfile REGISTRY: Docker @@ -96,7 +96,7 @@ jobs: # Set the Env Vars GCR_USERNAME: ${{ secrets.GCR_USERNAME }} GCR_TOKEN: ${{ secrets.GCR_PASSWORD }} - IMAGE_REPO: megalinter/megalinter + IMAGE_REPO: oxsecurity/megalinter IMAGE_VERSION: beta DOCKERFILE_PATH: Dockerfile REGISTRY: GCR @@ -111,7 +111,7 @@ jobs: run: | export CI_ENV="$(bash <(curl -s https://codecov.io/env)) -e GITHUB_ACTIONS" echo "CI_ENV=${CI_ENV}" - docker run $CI_ENV -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${GITHUB_SHA} -e OUTPUT_DETAILS=detailed -e GITHUB_SHA=${GITHUB_SHA} -e PAT="${{secrets.PAT}}" -e MEGALINTER_VOLUME_ROOT="${GITHUB_WORKSPACE}" -v "/var/run/docker.sock:/var/run/docker.sock:rw" -v ${GITHUB_WORKSPACE}:/tmp/lint megalinter/megalinter:beta + docker run $CI_ENV -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${GITHUB_SHA} -e OUTPUT_DETAILS=detailed -e GITHUB_SHA=${GITHUB_SHA} -e PAT="${{secrets.PAT}}" -e MEGALINTER_VOLUME_ROOT="${GITHUB_WORKSPACE}" -v "/var/run/docker.sock:/var/run/docker.sock:rw" -v ${GITHUB_WORKSPACE}:/tmp/lint oxsecurity/megalinter:beta timeout-minutes: 30 # Free disk space @@ -125,12 +125,12 @@ jobs: # Check Docker image security with Trivy # ############################################## - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@0.0.18 + uses: aquasecurity/trivy-action@master with: - image-ref: "docker.io/megalinter/megalinter:beta" - format: "table" - exit-code: "1" + image-ref: "docker.io/oxsecurity/megalinter:beta" + format: 'table' + exit-code: '1' ignore-unfixed: true - vuln-type: "os,library" - severity: "CRITICAL,HIGH" - timeout: 5m0s + vuln-type: 'os,library' + severity: 'CRITICAL,HIGH' + timeout: 10m0s \ No newline at end of file diff --git a/.github/workflows/deploy-RELEASE-flavors.yml b/.github/workflows/deploy-RELEASE-flavors.yml index e35d384698e..7669e224c74 100644 --- a/.github/workflows/deploy-RELEASE-flavors.yml +++ b/.github/workflows/deploy-RELEASE-flavors.yml @@ -37,13 +37,13 @@ jobs: environment: name: latest-flavors strategy: + fail-fast: false matrix: os: [ubuntu-latest] # flavors-start flavor: [ "ci_light", - "dart", "documentation", "dotnet", "go", @@ -54,12 +54,12 @@ jobs: "ruby", "rust", "salesforce", - "scala", + "security", "swift", "terraform", ] # flavors-end - if: github.repository == 'megalinter/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') + if: github.repository == 'oxsecurity/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') ################## # Load all steps # ################## @@ -68,7 +68,7 @@ jobs: # Checkout the code base # ########################## - name: Checkout Code - uses: actions/checkout@v3.0.1 + uses: actions/checkout@v3 with: fetch-depth: 0 @@ -80,7 +80,7 @@ jobs: # Set the Env Vars DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - IMAGE_REPO: megalinter/megalinter-${{ matrix.flavor }} + IMAGE_REPO: oxsecurity/megalinter-${{ matrix.flavor }} IMAGE_VERSION: ${{ github.event.release.tag_name }} DOCKERFILE_PATH: flavors/${{ matrix.flavor }}/Dockerfile REGISTRY: Docker @@ -98,14 +98,13 @@ jobs: # Check Docker image security with Trivy # ############################################## - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@0.0.18 + uses: aquasecurity/trivy-action@master with: - image-ref: 'docker.io/megalinter/megalinter-${{ matrix.flavor }}:${{ github.event.release.tag_name }}' + image-ref: 'docker.io/oxsecurity/megalinter-${{ matrix.flavor }}:${{ github.event.release.tag_name }}' format: 'table' exit-code: '1' ignore-unfixed: true vuln-type: 'os,library' severity: 'CRITICAL,HIGH' - timeout: 5m0s - + timeout: 10m0s diff --git a/.github/workflows/deploy-RELEASE-linters.yml b/.github/workflows/deploy-RELEASE-linters.yml new file mode 100644 index 00000000000..08001d2a8d6 --- /dev/null +++ b/.github/workflows/deploy-RELEASE-linters.yml @@ -0,0 +1,138 @@ +--- +######################### +######################### +## Deploy Docker Image Flavors ## +######################### +######################### +# Documentation: +# https://help.github.com/en/articles/workflow-syntax-for-github-actions +# + +####################################### +# Start the job on all push to main # +####################################### +name: "Build & Deploy - Release linters" +on: + release: + # Want to run the automation when a release is created + types: ["created"] + paths: + - "Dockerfile" + - "megalinter/**" + - "flavors/**" + - "**/linter-versions.json" + - "**/.sh" + +############### +# Set the Job # +############### +concurrency: + group: ${{ github.ref }}-${{ github.workflow }} + cancel-in-progress: true + +jobs: + + build: + needs: prepare + # Name the Job + name: Deploy Docker Image - Release - Linters + # Set the agent to run on + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + # linters-start + linter: + [ + "cloudformation_cfn_lint", + "dockerfile_hadolint", + "go_revive", + "groovy_npm_groovy_lint", + "java_checkstyle", + "javascript_es", + "json_eslint_plugin_jsonc", + "jsx_eslint", + "kotlin_ktlint", + "php_psalm", + "python_bandit", + "repository_devskim", + "repository_dustilock", + "repository_gitleaks", + "repository_secretlint", + "repository_semgrep", + "repository_syft", + "repository_trivy", + "terraform_tflint", + "terraform_terrascan", + "terraform_checkov", + "tsx_eslint", + "typescript_es", + ] +# linters-end + # Only run this on the main repo + if: github.repository == 'oxsecurity/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') + ################## + # Load all steps # + ################## + steps: + ########################## + # Checkout the code base # + ########################## + - name: Checkout Code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + ##################### + # Run Deploy script # + ##################### + - name: Deploy Release image to DockerHub + env: + # Set the Env Vars + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + IMAGE_REPO: oxsecurity/megalinter-only-${{ matrix.linter }} + IMAGE_VERSION: ${{ github.event.release.tag_name }} + DOCKERFILE_PATH: linters/${{ matrix.linter }}/Dockerfile + REGISTRY: Docker + shell: bash + run: .automation/upload-docker.sh + + - name: Deploy ${{ github.event.release.tag_name }} image to DockerHub + env: + # Set the Env Vars + DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} + DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} + IMAGE_REPO: oxsecurity/megalinter-only-${{ matrix.linter }} + IMAGE_VERSION: "${{ github.event.release.tag_name }}" + DOCKERFILE_PATH: linters/${{ matrix.linter }}/Dockerfile + REGISTRY: Docker + ALWAYS_BUILD: force + shell: bash + run: .automation/upload-docker.sh + + ##################################### + # Run Linter test cases # + ##################################### + - name: Run Test Cases + shell: bash + run: | + TEST_KEYWORDS_TO_USE_UPPER="${{ matrix.linter }}" + TEST_KEYWORDS_TO_USE="${TEST_KEYWORDS_TO_USE_UPPER,,}" + docker run -e TEST_CASE_RUN=true -e OUTPUT_FORMAT=text -e OUTPUT_FOLDER=${GITHUB_SHA} -e OUTPUT_DETAILS=detailed -e GITHUB_SHA=${GITHUB_SHA} -e PAT="${{secrets.PAT}}" -e TEST_KEYWORDS="${TEST_KEYWORDS_TO_USE}" -e MEGALINTER_VOLUME_ROOT="${GITHUB_WORKSPACE}" -v "/var/run/docker.sock:/var/run/docker.sock:rw" -v ${GITHUB_WORKSPACE}:/tmp/lint oxsecurity/megalinter-only-${{ matrix.linter }}:${{ github.event.release.tag_name }} + timeout-minutes: 30 + + ############################################## + # Check Docker image security with Trivy # + ############################################## + - name: Run Trivy vulnerability scanner + uses: aquasecurity/trivy-action@master + with: + image-ref: 'docker.io/oxsecurity/megalinter-only-${{ matrix.linter }}:${{ github.event.release.tag_name }}' + format: 'table' + exit-code: '1' + ignore-unfixed: true + vuln-type: 'os,library' + severity: 'CRITICAL,HIGH' + timeout: 10m0s diff --git a/.github/workflows/deploy-RELEASE.yml b/.github/workflows/deploy-RELEASE.yml index 2060eff8e0e..2640ac03474 100644 --- a/.github/workflows/deploy-RELEASE.yml +++ b/.github/workflows/deploy-RELEASE.yml @@ -36,7 +36,7 @@ jobs: # Set the agent to run on runs-on: ubuntu-latest # Only run on main repo - if: github.repository == 'megalinter/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') + if: github.repository == 'oxsecurity/megalinter' && !contains(github.event.head_commit.message, 'skip deploy') environment: name: latest ################## @@ -47,7 +47,7 @@ jobs: # Checkout the code base # ########################## - name: Checkout Code - uses: actions/checkout@v3.0.1 + uses: actions/checkout@v3 with: fetch-depth: 0 @@ -71,7 +71,7 @@ jobs: # Set the Env Vars DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - IMAGE_REPO: megalinter/megalinter + IMAGE_REPO: oxsecurity/megalinter IMAGE_VERSION: ${{ github.event.release.tag_name }} DOCKERFILE_PATH: Dockerfile REGISTRY: Docker @@ -86,7 +86,7 @@ jobs: # Set the Env Vars GCR_USERNAME: ${{ secrets.GCR_USERNAME }} GCR_TOKEN: ${{ secrets.GCR_PASSWORD }} - IMAGE_REPO: megalinter/megalinter + IMAGE_REPO: oxsecurity/megalinter IMAGE_VERSION: ${{ github.event.release.tag_name }} DOCKERFILE_PATH: Dockerfile REGISTRY: GCR @@ -104,22 +104,22 @@ jobs: # Check Docker image security with Trivy # ############################################## - name: Run Trivy vulnerability scanner - uses: aquasecurity/trivy-action@0.0.18 + uses: aquasecurity/trivy-action@master with: - image-ref: "docker.io/megalinter/megalinter:${{ github.event.release.tag_name }}" - format: "table" - exit-code: "1" + image-ref: "docker.io/oxsecurity/megalinter:${{ github.event.release.tag_name }}" + format: 'table' + exit-code: '1' ignore-unfixed: true - vuln-type: "os,library" - severity: "CRITICAL,HIGH" - timeout: 5m0s + vuln-type: 'os,library' + severity: 'CRITICAL,HIGH' + timeout: 10m0s deploy_doc: runs-on: ubuntu-latest needs: build - if: github.repository == 'megalinter/megalinter' + if: github.repository == 'oxsecurity/megalinter' steps: - - uses: actions/checkout@v3.0.1 + - uses: actions/checkout@v3 with: fetch-depth: 0 - name: Get release version @@ -156,25 +156,8 @@ jobs: run: | git checkout ${{ steps.version.outputs.ctag }} - name: Mike deploy current version - #todov6 : replace v5 by v6 run: | mike delete latest - mike delete v5 || true - mike deploy v5 || true + mike delete v6 || true + mike deploy v6 || true mike deploy --push latest ${{ steps.version.outputs.cversion }} - - git-sync: - runs-on: ubuntu-latest - needs: deploy_doc - steps: - - name: git-sync - uses: wei/git-sync@v3 - with: - source_repo: "megalinter/megalinter" - source_branch: "gh-pages" - destination_repo: "git@github.com:megalinter/megalinter.github.io.git" - destination_branch: "gh-pages" - # ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }} # optional - # source_ssh_private_key: ${{ secrets.SOURCE_SSH_PRIVATE_KEY }} # optional, will override `SSH_PRIVATE_KEY` - destination_ssh_private_key: ${{ secrets.MEGALINTER_GITHUB_IO_SSH_PRIVATE_KEY }} # optional, will override `SSH_PRIVATE_KEY` - diff --git a/.github/workflows/mega-linter-for-runner.yml b/.github/workflows/mega-linter-for-runner.yml index 9d332fba4f0..f3c447fd43a 100644 --- a/.github/workflows/mega-linter-for-runner.yml +++ b/.github/workflows/mega-linter-for-runner.yml @@ -1,6 +1,6 @@ --- # MegaLinter GitHub Action configuration file -# More info at https://megalinter.github.io +# More info at https://oxsecurity.github.io/megalinter name: MegaLinter for mega-linter-runner # Start lint on any push and on pull requests @@ -26,7 +26,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Code - uses: actions/checkout@v3.0.1 + uses: actions/checkout@v3 with: token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }} fetch-depth: 0 @@ -35,11 +35,11 @@ jobs: - name: MegaLinter id: ml # You can override MegaLinter flavor used to have faster performances - # More info at https://megalinter.github.io/flavors/ - uses: megalinter/megalinter/flavors/javascript@beta + # More info at https://oxsecurity.github.io/megalinter/flavors/ + uses: oxsecurity/megalinter/flavors/javascript@v6-alpha env: # All available variables are described in documentation - # https://megalinter.github.io/configuration/#shared-variables + # https://oxsecurity.github.io/megalinter/configuration/#shared-variables # ADD YOUR CUSTOM ENV VARIABLES HERE OR DEFINE THEM IN A FILE .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY DEFAULT_WORKSPACE: mega-linter-runner VALIDATE_ALL_CODEBASE: true # ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} # Validates all source when push on main, else just the git diff with main. Override with true if you always want to lint all sources @@ -53,7 +53,7 @@ jobs: with: name: MegaLinter reports path: | - report + megalinter-reports mega-linter.log # Create pull request if applicable (for now works only on PR from same repository, not from forks) diff --git a/.github/workflows/mega-linter.yml b/.github/workflows/mega-linter.yml index 901a7dc3e63..f969d9d08bd 100644 --- a/.github/workflows/mega-linter.yml +++ b/.github/workflows/mega-linter.yml @@ -1,6 +1,6 @@ --- # MegaLinter GitHub Action configuration file -# More info at https://megalinter.github.io +# More info at https://oxsecurity.github.io/megalinter name: MegaLinter # Start lint on any push and on pull requests @@ -26,7 +26,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Code - uses: actions/checkout@v3.0.1 + uses: actions/checkout@v3 with: token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }} fetch-depth: 0 @@ -35,11 +35,11 @@ jobs: - name: MegaLinter id: ml # You can override MegaLinter flavor used to have faster performances - # More info at https://megalinter.github.io/flavors/ - uses: megalinter/megalinter/flavors/python@beta + # More info at https://oxsecurity.github.io/megalinter/flavors/ + uses: oxsecurity/megalinter/flavors/python@v6-alpha env: # All available variables are described in documentation - # https://megalinter.github.io/configuration/#shared-variables + # https://oxsecurity.github.io/megalinter/configuration/#shared-variables # ADD YOUR CUSTOM ENV VARIABLES HERE OR DEFINE THEM IN A FILE .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY VALIDATE_ALL_CODEBASE: true # ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} # Validates all source when push on main, else just the git diff with main. Override with true if you always want to lint all sources GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -53,7 +53,7 @@ jobs: with: name: MegaLinter reports path: | - report + megalinter-reports mega-linter.log # Create pull request if applicable (for now works only on PR from same repository, not from forks) diff --git a/.github/workflows/test-mega-linter-runner.yml b/.github/workflows/test-mega-linter-runner.yml index 6b636b26342..57869e76ce0 100644 --- a/.github/workflows/test-mega-linter-runner.yml +++ b/.github/workflows/test-mega-linter-runner.yml @@ -17,12 +17,12 @@ jobs: timeout-minutes: 60 steps: - name: Checkout Code - uses: actions/checkout@v3.0.1 + uses: actions/checkout@v3 - name: Setup Node uses: actions/setup-node@v3.1.1 with: node-version: "12" - name: Install dependencies - run: cd mega-linter-runner && npm ci && npm link + run: cd mega-linter-runner && yarn install --frozen-lockfile && npm link - name: Run tests run: cd mega-linter-runner && npm run test diff --git a/.github/workflows/versioning.yml b/.github/workflows/versioning.yml index 8a60eba8e45..d6e9d576fb0 100644 --- a/.github/workflows/versioning.yml +++ b/.github/workflows/versioning.yml @@ -32,7 +32,7 @@ jobs: ############################# # Check out the latest code # ############################# - - uses: actions/checkout@v3.0.1 + - uses: actions/checkout@v3 ###################### # Run the tag action # diff --git a/.gitignore b/.gitignore index fc4e3cf430f..b502cca9562 100644 --- a/.gitignore +++ b/.gitignore @@ -94,7 +94,7 @@ coverage.xml .automation/test/copypaste/good/report/ -**/report/* +**/megalinter-reports/* !**/salesforce/report/* !**/salesforce/good/report/* !**/salesforce/bad/report/* diff --git a/.gitleaks.toml b/.gitleaks.toml new file mode 100644 index 00000000000..1b77c79cc60 --- /dev/null +++ b/.gitleaks.toml @@ -0,0 +1,177 @@ + +title = "gitleaks config" + +[[rules]] + description = "AWS Access Key" + regex = '''(A3T[A-Z0-9]|AKIA|AGPA|AIDA|AROA|AIPA|ANPA|ANVA|ASIA)[A-Z0-9]{16}''' + tags = ["key", "AWS"] + +[[rules]] + description = "AWS Secret Key" + regex = '''(?i)aws(.{0,20})?(?-i)['\"][0-9a-zA-Z\/+]{40}['\"]''' + tags = ["key", "AWS"] + +[[rules]] + description = "AWS MWS key" + regex = '''amzn\.mws\.[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}''' + tags = ["key", "AWS", "MWS"] + +[[rules]] + description = "Facebook Secret Key" + regex = '''(?i)(facebook|fb)(.{0,20})?(?-i)['\"][0-9a-f]{32}['\"]''' + tags = ["key", "Facebook"] + +[[rules]] + description = "Facebook Client ID" + regex = '''(?i)(facebook|fb)(.{0,20})?['\"][0-9]{13,17}['\"]''' + tags = ["key", "Facebook"] + +[[rules]] + description = "Twitter Secret Key" + regex = '''(?i)twitter(.{0,20})?['\"][0-9a-z]{35,44}['\"]''' + tags = ["key", "Twitter"] + +[[rules]] + description = "Twitter Client ID" + regex = '''(?i)twitter(.{0,20})?['\"][0-9a-z]{18,25}['\"]''' + tags = ["client", "Twitter"] + +[[rules]] + description = "Github Personal Access Token" + regex = '''ghp_[0-9a-zA-Z]{36}''' + tags = ["key", "Github"] +[[rules]] + description = "Github OAuth Access Token" + regex = '''gho_[0-9a-zA-Z]{36}''' + tags = ["key", "Github"] +[[rules]] + description = "Github App Token" + regex = '''(ghu|ghs)_[0-9a-zA-Z]{36}''' + tags = ["key", "Github"] +[[rules]] + description = "Github Refresh Token" + regex = '''ghr_[0-9a-zA-Z]{76}''' + tags = ["key", "Github"] + +[[rules]] + description = "LinkedIn Secret Key" + regex = '''(?i)linkedin(.{0,20})?[0-9a-z]{16}''' + tags = ["secret", "LinkedIn"] + +[[rules]] + description = "Slack" + regex = '''xox[baprs]-([0-9a-zA-Z]{10,48})?''' + tags = ["key", "Slack"] + +[[rules]] + description = "Asymmetric Private Key" + regex = '''-----BEGIN ((EC|PGP|DSA|RSA|OPENSSH) )?PRIVATE KEY( BLOCK)?-----''' + tags = ["key", "AsymmetricPrivateKey"] + +[[rules]] + description = "Google API key" + regex = '''AIza[0-9A-Za-z\\-_]{35}''' + tags = ["key", "Google"] + +[[rules]] + description = "Google (GCP) Service Account" + regex = '''"type": "service_account"''' + tags = ["key", "Google"] + +[[rules]] + description = "Heroku API key" + regex = '''(?i)heroku(.{0,20})?[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}''' + tags = ["key", "Heroku"] + +[[rules]] + description = "MailChimp API key" + regex = '''(?i)(mailchimp|mc)(.{0,20})?[0-9a-f]{32}-us[0-9]{1,2}''' + tags = ["key", "Mailchimp"] + +[[rules]] + description = "Mailgun API key" + regex = '''((?i)(mailgun|mg)(.{0,20})?)?key-[0-9a-z]{32}''' + tags = ["key", "Mailgun"] + +[[rules]] + description = "PayPal Braintree access token" + regex = '''access_token\$production\$[0-9a-z]{16}\$[0-9a-f]{32}''' + tags = ["key", "Paypal"] + +[[rules]] + description = "Picatic API key" + regex = '''sk_live_[0-9a-z]{32}''' + tags = ["key", "Picatic"] + +[[rules]] + description = "SendGrid API Key" + regex = '''SG\.[\w_]{16,32}\.[\w_]{16,64}''' + tags = ["key", "SendGrid"] + +[[rules]] + description = "Slack Webhook" + regex = '''https://hooks.slack.com/services/T[a-zA-Z0-9_]{8}/B[a-zA-Z0-9_]{8,12}/[a-zA-Z0-9_]{24}''' + tags = ["key", "slack"] + +[[rules]] + description = "Stripe API key" + regex = '''(?i)stripe(.{0,20})?[sr]k_live_[0-9a-zA-Z]{24}''' + tags = ["key", "Stripe"] + +[[rules]] + description = "Square access token" + regex = '''sq0atp-[0-9A-Za-z\-_]{22}''' + tags = ["key", "square"] + +[[rules]] + description = "Square OAuth secret" + regex = '''sq0csp-[0-9A-Za-z\\-_]{43}''' + tags = ["key", "square"] + +[[rules]] + description = "Twilio API key" + regex = '''(?i)twilio(.{0,20})?SK[0-9a-f]{32}''' + tags = ["key", "twilio"] + +[[rules]] + description = "Dynatrace ttoken" + regex = '''dt0[a-zA-Z]{1}[0-9]{2}\.[A-Z0-9]{24}\.[A-Z0-9]{64}''' + tags = ["key", "Dynatrace"] + +[[rules]] + description = "Shopify shared secret" + regex = '''shpss_[a-fA-F0-9]{32}''' + tags = ["key", "Shopify"] + +[[rules]] + description = "Shopify access token" + regex = '''shpat_[a-fA-F0-9]{32}''' + tags = ["key", "Shopify"] + +[[rules]] + description = "Shopify custom app access token" + regex = '''shpca_[a-fA-F0-9]{32}''' + tags = ["key", "Shopify"] + +[[rules]] + description = "Shopify private app access token" + regex = '''shppa_[a-fA-F0-9]{32}''' + tags = ["key", "Shopify"] + +[[rules]] + description = "PyPI upload token" + regex = '''pypi-AgEIcHlwaS5vcmc[A-Za-z0-9-_]{50,1000}''' + tags = ["key", "pypi"] + +[allowlist] + description = "Allowlisted files" + paths = [ + '''.automation/test''', + '''megalinter-reports''', + '''.github/linters''', + '''node_modules''', + '''.mypy_cache''', + '''(.*?)gitleaks\.toml$''', + '''(.*?)(png|jpg|gif|doc|docx|pdf|bin|xls|pyc|zip)$''', + '''(go.mod|go.sum)$'''] + diff --git a/.hadolint.yaml b/.hadolint.yml similarity index 87% rename from .hadolint.yaml rename to .hadolint.yml index b2a30b08f47..c1119776011 100644 --- a/.hadolint.yaml +++ b/.hadolint.yml @@ -2,6 +2,7 @@ ignored: - DL3007 - DL3016 - DL3028 + - DL3059 - SC2086 - SC2039 - - DL3059 + - SC3046 diff --git a/.jscpd.json b/.jscpd.json index 7a700646876..8e0d69c86d0 100644 --- a/.jscpd.json +++ b/.jscpd.json @@ -27,6 +27,8 @@ "**/*.test.js", "**/CHANGELOG.md", "**/mega-linter-runner/README.md", - "**/licenses/*.md" + "**/licenses/*.md", + "**/TEMPLATES/apex-pmd-ruleset.xml", + "**/TEMPLATES/java-pmd-ruleset.xml" ] } diff --git a/.mega-linter.yml b/.mega-linter.yml index 34f51120add..ec17e6a7b48 100644 --- a/.mega-linter.yml +++ b/.mega-linter.yml @@ -1,7 +1,7 @@ # Configuration file for MegaLinter -# See all available variables at https://megalinter.github.io/configuration/ and in linters documentation +# See all available variables at https://oxsecurity.github.io/megalinter/configuration/ and in linters documentation -APPLY_FIXES: all # When active, APPLY_FIXES must also be defined as environment variable (in github/workflows/mega-linter.yml or other CI tool) +APPLY_FIXES: all # ENABLE: # If you use ENABLE variable, all other languages/formats/tooling formats will be disabled by default # ENABLE_LINTERS: # If you use ENABLE_LINTERS variable, all other linters will be disabled by default DISABLE: @@ -14,7 +14,13 @@ DISABLE: - TEKTON DISABLE_LINTERS: - JSON_PRETTIER + - REPOSITORY_GITLEAKS +DISABLE_ERRORS_LINTERS: + - PYTHON_BANDIT + - REPOSITORY_DEVSKIM + - REPOSITORY_SEMGREP PRINT_ALL_FILES: false +FLAVOR_SUGGESTIONS: false FILTER_REGEX_EXCLUDE: '(\.automation/test|\.automation/generated|\.github/workflows|docs/javascripts|docs/overrides|docs/json-schemas|flavors|clj-kondo|TEMPLATES)' JSON_JSONLINT_FILTER_REGEX_EXCLUDE: '(\.vscode/)' YAML_YAMLLINT_FILTER_REGEX_EXCLUDE: '(templates/\.mega-linter\.yml)' @@ -24,15 +30,17 @@ BASH_FILTER_REGEX_EXCLUDE: "(lib)" MARKDOWN_FILTER_REGEX_EXCLUDE: '(license\.md)' MARKDOWN_MARKDOWN_LINK_CHECK_DISABLE_ERRORS: true SPELL_MISSPELL_FILTER_REGEX_EXCLUDE: '(\.automation/generated|docs/descriptors)' -DOCKERFILE_HADOLINT_ARGUMENTS: "--ignore DL3003 --ignore DL3007 --ignore DL3013 --ignore DL3016 --ignore DL3018 --ignore DL3028 --ignore DL4001 --ignore DL4006 --ignore SC2015 --ignore SC2016 --ignore SC2039 --ignore SC2086 --ignore SC1091" -PYTHON_BANDIT_DISABLE_ERRORS: true +DOCKERFILE_HADOLINT_ARGUMENTS: "--ignore DL3003 --ignore DL3007 --ignore DL3013 --ignore DL3016 --ignore DL3018 --ignore DL3028 --ignore DL3059 --ignore DL4001 --ignore DL4006 --ignore SC2015 --ignore SC2016 --ignore SC2039 --ignore SC2086 --ignore SC1091 --ignore SC3046" +REPOSITORY_TRIVY_ARGUMENTS: + - "--skip-dirs" + - ".automation/test" SHOW_ELAPSED_TIME: true -EMAIL_REPORTER_EMAIL: nicolas.vuillamy@gmail.com +EMAIL_REPORTER: false FILEIO_REPORTER: true JSON_REPORTER: true GITHUB_STATUS_REPORTER: false PLUGINS: - - https://raw.githubusercontent.com/megalinter/megalinter/main/.automation/test/mega-linter-plugin-test/test.megalinter-descriptor.yml + - https://raw.githubusercontent.com/oxsecurity/megalinter/main/.automation/test/mega-linter-plugin-test/test.megalinter-descriptor.yml PRE_COMMANDS: - command: echo "This is MegaLinter PRE_COMMAND on own MegaLinter ! :)" cwd: "root" diff --git a/.pre-commit-hooks.yaml b/.pre-commit-hooks.yaml index c69dec03728..eb97a8b4e90 100644 --- a/.pre-commit-hooks.yaml +++ b/.pre-commit-hooks.yaml @@ -19,8 +19,8 @@ stages: - commit description: > - See https://megalinter.github.io/latest/mega-linter-runner/#usage and - https://megalinter.github.io/latest/configuration/ if you wish to override + See https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/#usage and + https://oxsecurity.github.io/megalinter/latest/configuration/ if you wish to override the default arguments. mega-linter-runner is specified as an argument so that you may override the version (e.g., mega-linter-runner@vx.y.z). Depends on npx, which ships with npm 7+, and Docker. Unlike most pre-commit hooks, @@ -53,8 +53,8 @@ stages: - push description: > - See https://megalinter.github.io/latest/mega-linter-runner/#usage and - https://megalinter.github.io/latest/configuration/ if you wish to override + See https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/#usage and + https://oxsecurity.github.io/megalinter/latest/configuration/ if you wish to override the default arguments. mega-linter-runner is specified as an argument so that you may override the version (e.g., mega-linter-runner@vx.y.z). Depends on npx, which ships with npm 7+, and Docker. Runs very slowly when the diff --git a/.secretlintignore b/.secretlintignore index 860aa8b863c..38d5b0f6971 100644 --- a/.secretlintignore +++ b/.secretlintignore @@ -1 +1,2 @@ -.automation/test \ No newline at end of file +.automation/test +megalinter-reports diff --git a/.trivyignore b/.trivyignore index 7fccacb4cf8..758cf9711b9 100644 --- a/.trivyignore +++ b/.trivyignore @@ -1,5 +1,6 @@ CVE-2017-18640 CVE-2018-1098 +CVE-2018-25032 CVE-2019-11253 CVE-2020-13949 CVE-2020-14040 @@ -25,6 +26,7 @@ CVE-2021-23337 CVE-2021-23358 CVE-2021-23406 CVE-2021-23436 +CVE-2021-23566 CVE-2021-23807 CVE-2021-25741 CVE-2021-28918 @@ -67,16 +69,23 @@ CVE-2021-42384 CVE-2021-42385 CVE-2021-42386 CVE-2021-43138 +CVE-2021-43816 CVE-2021-44906 CVE-2021-45960 CVE-2021-46143 +CVE-2022-0235 CVE-2022-0778 +CVE-2022-1271 +CVE-2022-1996 +CVE-2022-21680 +CVE-2022-21681 CVE-2022-22822 CVE-2022-22823 CVE-2022-22824 CVE-2022-22825 CVE-2022-22826 CVE-2022-22827 +CVE-2022-23648 CVE-2022-23852 CVE-2022-23990 CVE-2022-24433 @@ -84,7 +93,18 @@ CVE-2022-25235 CVE-2022-25236 CVE-2022-25314 CVE-2022-25315 +CVE-2022-25647 +CVE-2022-26945 CVE-2022-27191 CVE-2022-28391 +CVE-2022-28946 CVE-2022-28948 -CVE-2022-29078 +CVE-2022-30321 +CVE-2022-30322 +CVE-2022-30323 +DS001 +DS002 +DS003 +DS004 +DS013 +DS014 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index a2a0b5b747e..e8770cf58dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + + ## [Unreleased] (beta, main branch content) Note: Can be used with `megalinter/megalinter@beta` in your GitHub Action mega-linter.yml file, or with `megalinter/megalinter:beta` docker image @@ -13,6 +15,64 @@ Note: Can be used with `megalinter/megalinter@beta` in your GitHub Action mega-l - Linter versions upgrades +## [v6.O.O] - 2022-07-10 + +- Breaking changes: you must run `npx mega-linter-runner --upgrade` to use MegaLinter v6 + +- Core architecture + - New reporter **SARIF_REPORTER** that aggregates all SARIF output files into a single one + - Correct SARIF files for known format errors + - New config variable **DISABLE_LINTERS_ERRORS** to define a list of linters that will be considered as non blocking + - Upgrade base docker image to python:3.10.4-alpine3.15 + - Rename default report folder from `report` to `megalinter-reports` + - Display GitHub stars in linters summary table in documentation + +- Linters: + - Add [DevSkim](https://github.com/microsoft/DevSkim) security linter by Microsoft + - Add [dustilock](https://github.com/Checkmarx/dustilock) to check for dependency confusion attacks with node and python packages + - Add [gitleaks](https://github.com/zricethezav/gitleaks) to lint git repository + - Add [goodcheck](https://github.com/sider/goodcheck) as regex-based linter + - Add [PMD](https://pmd.github.io/) to lint java files (disabled for now) + - Add [semgrep](https://github.com/returntocorp/semgrep) as regex-based linter with many community rules + - Add [syft](https://github.com/anchore/syft) to generate SBOM (Software Bill Of Materials) + - Add [trivy](https://github.com/aquasecurity/trivy) security linter + - Remove **dockerfilelint**, as it is not maintained anymore and hadolint contains all its rules + - Remove **rstfmt** as it is not maintained anymore + - SARIF management for: + - bandit + - checkov + - checkstyle + - cfn-lint + - devskim + - eslint + - gitleaks + - hadolint + - ktlint + - npm-groovy-lint + - psalm + - semgrep + - secretlint + - revive + - terrascan + - tflint + - trivy + +- Descriptors: + - New flavor **Security** + - New descriptor **repository**: contains DevSkip, dustilock, gitleaks, secretlint, semgrep, syft, trivy + - Remove CREDENTIALS and GIT descriptors + +- mega-linter-runner + - `--upgrade` option can now upgrade repos MegaLinter config to v6 + - Create/update local `.gitignore` file when installing / updating MegaLinter using mega-linter-runner + - Propose to test ox.security service + - Switch from npm to yarn + +- Dev architecture + - Manage offline run of `bash build.sh` for those who want to code in planes :) + - Automate update of CHANGELOG.md after release (beta) + - Accelerate internal CI testing performances + ## [v5.17.0] - 2022-07-10 - Message to propose users to upgrade to v6 @@ -726,6 +786,7 @@ Note: Can be used with `megalinter/megalinter@beta` in your GitHub Action mega-l - Fix `phplint` constraint to accept all future bugfix v3.0.x versions (PHP 7.4 support) (#1043) - `cpplint`: Use `cli_lint_mode: project` to improve performances + - Linter versions upgrades - [remark-lint](https://remark.js.org/) from 14.0.1 to **14.0.2** on 2021-11-19 - [php](https://www.php.net) from 7.4.25 to **7.4.26** on 2021-11-19 @@ -818,6 +879,24 @@ Note: Can be used with `megalinter/megalinter@beta` in your GitHub Action mega-l - Fix typo error in `.jscpd.json` config file (#986) - Deprecate `DEFAULT_BRANCH`, and change its default from `master` to `HEAD` (#915) +- Core architecture + - New configuration **PRINT_ALL_FILES** (default: `true`). If set to `false`, console log only displays updated and error files, not all of them + - Documentation versioning with mike + - Allow GithubStatusReporter to work for other CI platforms + - Add license info in **List of linters** documentation page + +- Linters + - Update **black** configuration, that now uses a `pyproject.toml` file (#949) + - Allows `list_of_files` cli_lint_mode on Psalm linter to improve performance compare to `file` mode + - Upgrade checkov install instructions to use alpine-oriented ones + - Accordingly, to official [PHPStan documentation](https://phpstan.org/user-guide/rule-levels), the TEMPLATES/phpstan.neon.dist config file set default level to zero. + - Downgrade dotnet from 6.0 to 5.0, to be compliant with tsqllint + +- Bug fixes + - Fix config issue with IGNORE_GITIGNORED_FILES (#932) + - Bypass random CI issue with sql_tsqllint_test test version and test help + - mega-linter-runner: Upgrade yeoman environment to allow spaces in path + - Linter versions upgrades - [cspell](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell) from 5.12.5 to **5.12.6** on 2021-11-04 - [cfn-lint](https://github.com/martysweet/cfn-lint) from 0.55.0 to **0.56.0** on 2021-11-06 diff --git a/Dockerfile b/Dockerfile index 0550c567d45..491569fd9f9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,9 +16,9 @@ FROM hadolint/hadolint:v2.10.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker FROM ghcr.io/assignuser/chktex-alpine:latest as chktex FROM yoheimuta/protolint:latest as protolint -FROM ghcr.io/assignuser/lintr-lib:0.2.0 as lintr-lib +FROM zricethezav/gitleaks:v8.8.7 as gitleaks FROM ghcr.io/terraform-linters/tflint:v0.35.0 as tflint -FROM accurics/terrascan:latest as terrascan +FROM tenable/terrascan:latest as terrascan FROM alpine/terragrunt:latest as terragrunt FROM checkmarx/kics:alpine as kics #FROM__END @@ -26,7 +26,8 @@ FROM checkmarx/kics:alpine as kics ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -50,31 +51,16 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -83,13 +69,20 @@ RUN apk add --update --no-cache \ RUN apk add --update --no-cache \ docker \ openrc \ + go \ + icu-libs \ + bash \ + libcurl \ + libintl \ + libssl1.1 \ + libstdc++ \ lttng-ust-dev \ zlib \ zlib-dev \ - go \ openjdk11 \ perl \ perl-dev \ + gnupg \ php7 \ php7-phar \ php7-json \ @@ -111,27 +104,37 @@ RUN apk add --update --no-cache \ php8-simplexml \ composer \ dpkg \ - ruby \ - ruby-dev \ - ruby-bundler \ - ruby-rdoc \ - R \ - R-dev \ - R-doc \ + nodejs \ + npm \ + yarn \ + openssl \ + readline-dev \ + gcc \ + g++ \ libc-dev \ + libffi-dev \ + libgcc \ libxml2-dev \ libxml2-utils \ - libgcc + linux-headers \ + R \ + R-dev \ + R-doc \ + nodejs-current \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -146,11 +149,12 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u 'flake8' \ 'isort' \ 'bandit' \ + 'bandit_sarif_formatter' \ 'mypy' \ + 'semgrep' \ 'restructuredtext_lint' \ 'rstcheck' \ 'snakemake' \ - 'snakefmt' \ 'sqlfluff' \ 'yamllint' #PIP__END @@ -164,19 +168,16 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ +WORKDIR /node-deps +RUN npm install --ignore-scripts \ sfdx-cli \ typescript \ - asl-validator \ @coffeelint/cli \ jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ stylelint \ stylelint-config-standard \ stylelint-config-sass-guidelines \ stylelint-scss \ - dockerfilelint \ gherkin-lint \ graphql \ graphql-schema-linter \ @@ -195,29 +196,35 @@ RUN npm install --no-cache --ignore-scripts \ babel-eslint \ @babel/core \ @babel/eslint-parser \ + @microsoft/eslint-formatter-sarif \ standard@15.0.1 \ prettier \ jsonlint \ eslint-plugin-jsonc \ - v8r@0.6.1 \ + v8r \ eslint-plugin-react \ eslint-plugin-jsx-a11y \ markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ markdown-link-check \ markdown-table-formatter \ @stoplight/spectral@5.6.0 \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif \ cspell \ sql-lint \ tekton-lint \ prettyjson \ @typescript-eslint/eslint-plugin \ - @typescript-eslint/parser + @typescript-eslint/parser && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -230,6 +237,7 @@ RUN echo 'gem: --no-document' >> ~/.gemrc && \ gem install \ scss_lint \ puppet-lint \ + goodcheck \ rubocop \ rubocop-github \ rubocop-performance \ @@ -242,6 +250,17 @@ RUN echo 'gem: --no-document' >> ~/.gemrc && \ ############################################################################################# #OTHER__START RUN rc-update add docker boot && rc-service docker start || true +# ARM installation +RUN mkdir -p ${PWSH_DIRECTORY} \ + && curl --retry 5 --retry-delay 5 -s https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ + | grep browser_download_url \ + | grep linux-alpine-x64 \ + | cut -d '"' -f 4 \ + | xargs -n 1 wget -O - \ + | tar -xzC ${PWSH_DIRECTORY} \ + && ln -sf ${PWSH_DIRECTORY}/pwsh /usr/bin/pwsh + + # CSHARP installation RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ && chmod +x dotnet-install.sh \ @@ -249,9 +268,6 @@ RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" -# GIT installation -RUN git config --global core.autocrlf true - # JAVA installation ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk ENV PATH="$JAVA_HOME/bin:${PATH}" @@ -273,23 +289,25 @@ RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ # POWERSHELL installation -RUN mkdir -p ${PWSH_DIRECTORY} \ - && curl --retry 5 --retry-delay 5 -s https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ - | grep browser_download_url \ - | grep linux-alpine-x64 \ - | cut -d '"' -f 4 \ - | xargs -n 1 wget -O - \ - | tar -xzC ${PWSH_DIRECTORY} \ - && ln -sf ${PWSH_DIRECTORY}/pwsh /usr/bin/pwsh - +# Next line commented because already managed by another linter +# RUN mkdir -p ${PWSH_DIRECTORY} \ +# && curl --retry 5 --retry-delay 5 -s https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ +# | grep browser_download_url \ +# | grep linux-alpine-x64 \ +# | cut -d '"' -f 4 \ +# | xargs -n 1 wget -O - \ +# | tar -xzC ${PWSH_DIRECTORY} \ +# && ln -sf ${PWSH_DIRECTORY}/pwsh /usr/bin/pwsh # RUST installation RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" # SALESFORCE installation -ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk -ENV PATH="$JAVA_HOME/bin:${PATH}" +# Next line commented because already managed by another linter +# ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk +# Next line commented because already managed by another linter +# ENV PATH="$JAVA_HOME/bin:${PATH}" RUN echo y|sfdx plugins:install sfdx-hardis # SCALA installation @@ -297,6 +315,14 @@ RUN curl -fLo coursier https://git.io/coursier-cli && \ chmod +x coursier +# VBDOTNET installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ +# && chmod +x dotnet-install.sh \ +# && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest +# Next line commented because already managed by another linter +# ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" + # actionlint installation ENV GO111MODULE=on RUN go get github.com/rhysd/actionlint/cmd/actionlint @@ -334,7 +360,7 @@ COPY --from=clj-kondo /bin/clj-kondo /usr/bin/ RUN /usr/share/dotnet/dotnet tool install -g dotnet-format # dartanalyzer installation -RUN wget --tries=5 -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \ +RUN wget --tries=50 -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \ && wget --tries=5 -q https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk \ && apk add --no-cache glibc-${GLIBC_VERSION}.apk && rm glibc-${GLIBC_VERSION}.apk \ && wget --tries=5 https://storage.googleapis.com/dart-archive/channels/stable/release/${DART_VERSION}/sdk/dartsdk-linux-x64-release.zip -O - -q | unzip -q - \ @@ -429,10 +455,13 @@ RUN phive --no-progress install psalm -g --trust-gpg-keys 8A03EA3B385DBAA1,12CE0 # phplint installation -RUN composer global require overtrue/phplint ^3.0 \ +RUN composer global require --ignore-platform-reqs overtrue/phplint ^3.0 \ && composer global config bin-dir --absolute -ENV PATH="/root/.composer/vendor/bin:$PATH" +RUN wget --tries=5 -q -O phplint.phar https://github.com/overtrue/phplint/releases/download/3.1.1/phplint.phar \ + && chmod +x phplint.phar \ + && mv phplint.phar /usr/local/bin/phplint + # powershell installation RUN pwsh -c 'Install-Module -Name PSScriptAnalyzer -RequiredVersion ${PSSA_VERSION} -Scope AllUsers -Force' @@ -441,19 +470,54 @@ RUN pwsh -c 'Install-Module -Name PSScriptAnalyzer -RequiredVersion ${PSSA_VERSI COPY --from=protolint /usr/local/bin/protolint /usr/bin/ # lintr installation -COPY --from=lintr-lib /usr/lib/R/library/ /home/r-library -RUN R -e "install.packages(list.dirs('/home/r-library',recursive = FALSE), repos = NULL, type = 'source')" +RUN mkdir -p /home/r-library \ + && cp -r /usr/lib/R/library/ /home/r-library/ \ + && Rscript -e "install.packages(c('lintr','purrr'), repos = 'https://cloud.r-project.org/')" \ + && R -e "install.packages(list.dirs('/home/r-library',recursive = FALSE), repos = NULL, type = 'source')" + # raku installation RUN curl -L https://github.com/nxadm/rakudo-pkg/releases/download/v2020.10-02/rakudo-pkg-Alpine3.12_2020.10-02_x86_64.apk > rakudo-pkg-Alpine3.12_2020.10-02_x86_64.apk \ && apk add --no-cache --allow-untrusted rakudo-pkg-Alpine3.12_2020.10-02_x86_64.apk \ && rm rakudo-pkg-Alpine3.12_2020.10-02_x86_64.apk \ && /opt/rakudo-pkg/bin/add-rakudo-to-path \ - && source /root/.profile \ + # && source /root/.profile \ && /opt/rakudo-pkg/bin/install-zef-as-user ENV PATH="~/.raku/bin:/opt/rakudo-pkg/bin:/opt/rakudo-pkg/share/perl6/site/bin:$PATH" +# devskim installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ +# && chmod +x dotnet-install.sh \ +# && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest +# Next line commented because already managed by another linter +# ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" +RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI + +# dustilock installation +RUN ML_THIRD_PARTY_DIR=/download/dustilock && \ + mkdir -p ${ML_THIRD_PARTY_DIR} && \ + git clone https://github.com/Checkmarx/dustilock.git ${ML_THIRD_PARTY_DIR} && \ + cd ${ML_THIRD_PARTY_DIR} && \ + go build && \ + chmod +x dustilock && \ + mv "${ML_THIRD_PARTY_DIR}/dustilock" /usr/bin/ && \ + find ${ML_THIRD_PARTY_DIR} -type f -not -name 'LICENSE*' -delete -o -type d -empty -delete + + +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +# syft installation +RUN curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin + +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + # clippy installation RUN rustup component add clippy @@ -461,10 +525,12 @@ RUN rustup component add clippy RUN sfdx plugins:install @salesforce/sfdx-scanner # sfdx-scanner-aura installation -RUN sfdx plugins:install @salesforce/sfdx-scanner +# Next line commented because already managed by another linter +# RUN sfdx plugins:install @salesforce/sfdx-scanner # sfdx-scanner-lwc installation -RUN sfdx plugins:install @salesforce/sfdx-scanner +# Next line commented because already managed by another linter +# RUN sfdx plugins:install @salesforce/sfdx-scanner # scalafix installation RUN ./coursier install scalafix --quiet --install-dir /usr/bin @@ -479,6 +545,12 @@ RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ # tsqllint installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ +# && chmod +x dotnet-install.sh \ +# && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest +# Next line commented because already managed by another linter +# ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" RUN dotnet tool install --global TSQLLint # tflint installation @@ -504,14 +576,11 @@ RUN mkdir -p /opt/kics/assets ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/assets/libraries COPY --from=kics /app/bin/assets /opt/kics/assets/ -#OTHER__END +# dotnet-format installation +# Next line commented because already managed by another linter +# RUN /usr/share/dotnet/dotnet tool install -g dotnet-format -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#OTHER__END ################################ # Installs python dependencies # @@ -557,8 +626,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/Dockerfile-quick b/Dockerfile-quick index 27b3bfc83ff..76697e0a4d5 100644 --- a/Dockerfile-quick +++ b/Dockerfile-quick @@ -7,7 +7,7 @@ ################## # Get base image # ################## -ARG MEGALINTER_BASE_IMAGE=megalinter/megalinter:latest +ARG MEGALINTER_BASE_IMAGE=megalinter/megalinter:beta FROM $MEGALINTER_BASE_IMAGE ###################### diff --git a/README.md b/README.md index 820381da414..e962e52aa0e 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ MegaLinter is an **Open-Source** tool for **CI/CD workflows** that analyzes the **consistency of your code**, **IAC**, **configuration**, and **scripts** in your repository sources, to **ensure all your projects sources are clean and formatted** whatever IDE/toolbox is used by their developers, powered by [**OX security**](https://www.ox.security/). -Supporting [**49** languages](#languages), [**22** formats](#formats), [**21** tooling formats](#tooling-formats) and **ready to use out of the box**, as a GitHub action or any CI system **highly configurable** and **free for all uses**. +Supporting [**48** languages](#languages), [**21** formats](#formats), [**20** tooling formats](#tooling-formats) and **ready to use out of the box**, as a GitHub action or any CI system **highly configurable** and **free for all uses**. @@ -178,120 +178,124 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/bash.md#readme) | [bash-exec](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/bash_bash_exec.md#readme) | [BASH_EXEC](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/bash_bash_exec.md#readme) | | | -| | | [shellcheck](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/bash_shellcheck.md#readme) | [BASH_SHELLCHECK](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/bash_shellcheck.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/bash_shfmt.md#readme) | [BASH_SHFMT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/bash_shfmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**C**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/c.md#readme) | [cpplint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/c_cpplint.md#readme) | [C_CPPLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/c_cpplint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cpplint/cpplint)](https://github.com/cpplint/cpplint/commits) | -| | [**CLOJURE**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/clojure.md#readme) | [clj-kondo](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/clojure_clj_kondo.md#readme) | [CLOJURE_CLJ_KONDO](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/clojure_clj_kondo.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/borkdude/clj-kondo)](https://github.com/borkdude/clj-kondo/commits) | -| | [**COFFEE**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/coffee.md#readme) | [coffeelint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md#readme) | [COFFEE_COFFEELINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/clutchski/coffeelint)](https://github.com/clutchski/coffeelint/commits) | -| | [**C++** (CPP)](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/cpp.md#readme) | [cpplint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/cpp_cpplint.md#readme) | [CPP_CPPLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/cpp_cpplint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cpplint/cpplint)](https://github.com/cpplint/cpplint/commits) | -| | [**C#** (CSHARP)](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/csharp.md#readme) | [dotnet-format](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md#readme) | [CSHARP_DOTNET_FORMAT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotnet/format)](https://github.com/dotnet/format/commits) | -| | [**DART**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dart.md#readme) | [dartanalyzer](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md#readme) | [DART_DARTANALYZER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/dart-lang/sdk)](https://github.com/dart-lang/sdk/commits) | -| | [**GO**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/go.md#readme) | [golangci-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/go_golangci_lint.md#readme) | [GO_GOLANGCI_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/go_golangci_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/golangci/golangci-lint)](https://github.com/golangci/golangci-lint/commits) | -| | | [revive](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/go_revive.md#readme) | [GO_REVIVE](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/go_revive.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/mgechev/revive)](https://github.com/mgechev/revive/commits) | -| | [**GROOVY**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/groovy.md#readme) | [npm-groovy-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md#readme) | [GROOVY_NPM_GROOVY_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**JAVA**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/java.md#readme) | [checkstyle](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/java_checkstyle.md#readme) | [JAVA_CHECKSTYLE](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/java_checkstyle.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/checkstyle/checkstyle)](https://github.com/checkstyle/checkstyle/commits) | -| | [**JAVASCRIPT**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/javascript.md#readme) | [eslint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/javascript_eslint.md#readme) | [JAVASCRIPT_ES](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/javascript_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/eslint/eslint)](https://github.com/eslint/eslint/commits) | -| | | [standard](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/javascript_standard.md#readme) | [JAVASCRIPT_STANDARD](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/javascript_standard.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/standard/standard)](https://github.com/standard/standard/commits) | -| | | [prettier](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/javascript_prettier.md#readme) | [JAVASCRIPT_PRETTIER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/javascript_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**JSX**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/jsx.md#readme) | [eslint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/jsx_eslint.md#readme) | [JSX_ESLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/jsx_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yannickcr/eslint-plugin-react)](https://github.com/yannickcr/eslint-plugin-react/commits) | -| | [**KOTLIN**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kotlin.md#readme) | [ktlint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kotlin_ktlint.md#readme) | [KOTLIN_KTLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kotlin_ktlint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**LUA**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/lua.md#readme) | [luacheck](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/lua_luacheck.md#readme) | [LUA_LUACHECK](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/lua_luacheck.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/luarocks/luacheck)](https://github.com/luarocks/luacheck/commits) | -| | [**PERL**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/perl.md#readme) | [perlcritic](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/perl_perlcritic.md#readme) | [PERL_PERLCRITIC](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/perl_perlcritic.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/Perl-Critic/Perl-Critic)](https://github.com/Perl-Critic/Perl-Critic/commits) | -| | [**PHP**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php.md#readme) | [php](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_php.md#readme) | [PHP_BUILTIN](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_php.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/php/php-src)](https://github.com/php/php-src/commits) | -| | | [phpcs](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_phpcs.md#readme) | [PHP_PHPCS](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_phpcs.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/squizlabs/PHP_CodeSniffer)](https://github.com/squizlabs/PHP_CodeSniffer/commits) | -| | | [phpstan](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_phpstan.md#readme) | [PHP_PHPSTAN](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_phpstan.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/phpstan/phpstan)](https://github.com/phpstan/phpstan/commits) | -| | | [psalm](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_psalm.md#readme) | [PHP_PSALM](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_psalm.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/vimeo/psalm)](https://github.com/vimeo/psalm/commits) | -| | | [phplint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_phplint.md#readme) | [PHP_PHPLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_phplint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/overtrue/phplint)](https://github.com/overtrue/phplint/commits) | -| | [**POWERSHELL**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/powershell.md#readme) | [powershell](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/powershell_powershell.md#readme) | [POWERSHELL_POWERSHELL](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/powershell_powershell.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PowerShell/PSScriptAnalyzer)](https://github.com/PowerShell/PSScriptAnalyzer/commits) | -| | [**PYTHON**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python.md#readme) | [pylint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_pylint.md#readme) | [PYTHON_PYLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_pylint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/pylint)](https://github.com/PyCQA/pylint/commits) | -| | | [black](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_black.md#readme) | [PYTHON_BLACK](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_black.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/psf/black)](https://github.com/psf/black/commits) | -| | | [flake8](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_flake8.md#readme) | [PYTHON_FLAKE8](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_flake8.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/flake8)](https://github.com/PyCQA/flake8/commits) | -| | | [isort](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_isort.md#readme) | [PYTHON_ISORT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_isort.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/isort)](https://github.com/PyCQA/isort/commits) | -| | | [bandit](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_bandit.md#readme) | [PYTHON_BANDIT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_bandit.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/bandit)](https://github.com/PyCQA/bandit/commits) | -| | | [mypy](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_mypy.md#readme) | [PYTHON_MYPY](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_mypy.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/python/mypy)](https://github.com/python/mypy/commits) | -| | [**R**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/r.md#readme) | [lintr](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/r_lintr.md#readme) | [R_LINTR](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/r_lintr.md#readme) | | | -| | [**RAKU**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/raku.md#readme) | [raku](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/raku_raku.md#readme) | [RAKU_RAKU](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/raku_raku.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rakudo/rakudo)](https://github.com/rakudo/rakudo/commits) | -| | [**RUBY**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/ruby.md#readme) | [rubocop](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/ruby_rubocop.md#readme) | [RUBY_RUBOCOP](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/ruby_rubocop.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/rubocop-hq/rubocop)](https://github.com/rubocop-hq/rubocop/commits) | -| | [**RUST**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rust.md#readme) | [clippy](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rust_clippy.md#readme) | [RUST_CLIPPY](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rust_clippy.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rust-lang/rust-clippy)](https://github.com/rust-lang/rust-clippy/commits) | -| | [**SALESFORCE**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/salesforce.md#readme) | [sfdx-scanner-apex](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_apex.md#readme) | [SALESFORCE_SFDX_SCANNER_APEX](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_apex.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | | [sfdx-scanner-aura](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_aura.md#readme) | [SALESFORCE_SFDX_SCANNER_AURA](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_aura.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | | [sfdx-scanner-lwc](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_lwc.md#readme) | [SALESFORCE_SFDX_SCANNER_LWC](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_lwc.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | [**SCALA**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/scala.md#readme) | [scalafix](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/scala_scalafix.md#readme) | [SCALA_SCALAFIX](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/scala_scalafix.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/scalacenter/scalafix)](https://github.com/scalacenter/scalafix/commits) | -| | [**SQL**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/sql.md#readme) | [sql-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/sql_sql_lint.md#readme) | [SQL_SQL_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/sql_sql_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md#readme) | [SQL_SQLFLUFF](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | -| | | [tsqllint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/sql_tsqllint.md#readme) | [SQL_TSQLLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/sql_tsqllint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tsqllint/tsqllint)](https://github.com/tsqllint/tsqllint/commits) | -| | [**SWIFT**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/swift.md#readme) | [swiftlint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/swift_swiftlint.md#readme) | [SWIFT_SWIFTLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/swift_swiftlint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/realm/SwiftLint)](https://github.com/realm/SwiftLint/commits) | -| | [**TSX**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/tsx.md#readme) | [eslint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/tsx_eslint.md#readme) | [TSX_ESLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/tsx_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yannickcr/eslint-plugin-react)](https://github.com/yannickcr/eslint-plugin-react/commits) | -| | [**TYPESCRIPT**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/typescript.md#readme) | [eslint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/typescript_eslint.md#readme) | [TYPESCRIPT_ES](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/typescript_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/eslint/eslint)](https://github.com/eslint/eslint/commits) | -| | | [standard](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/typescript_standard.md#readme) | [TYPESCRIPT_STANDARD](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/typescript_standard.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/standard/standard)](https://github.com/standard/standard/commits) | -| | | [prettier](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/typescript_prettier.md#readme) | [TYPESCRIPT_PRETTIER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/typescript_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**Visual Basic .NET** (VBDOTNET)](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/vbdotnet.md#readme) | [dotnet-format](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md#readme) | [VBDOTNET_DOTNET_FORMAT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotnet/format)](https://github.com/dotnet/format/commits) | +| | Language | Linter | Configuration key | Additional | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash.md#readme) | [bash-exec](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_bash_exec.md#readme) | [BASH_EXEC](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_bash_exec.md#readme) | | +| | | [shellcheck](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shellcheck.md#readme) | [BASH_SHELLCHECK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shellcheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shfmt.md#readme) | [BASH_SHFMT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shfmt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**C**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c.md#readme) | [cpplint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cpplint.md#readme) | [C_CPPLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cpplint.md#readme) | | +| | [**CLOJURE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure.md#readme) | [clj-kondo](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_clj_kondo.md#readme) | [CLOJURE_CLJ_KONDO](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_clj_kondo.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/borkdude/clj-kondo?cacheSeconds=3600)](https://github.com/borkdude/clj-kondo) | +| | [**COFFEE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee.md#readme) | [coffeelint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md#readme) | [COFFEE_COFFEELINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/clutchski/coffeelint?cacheSeconds=3600)](https://github.com/clutchski/coffeelint) | +| | [**C++** (CPP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp.md#readme) | [cpplint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cpplint.md#readme) | [CPP_CPPLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cpplint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/cpplint/cpplint?cacheSeconds=3600)](https://github.com/cpplint/cpplint) | +| | [**C#** (CSHARP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp.md#readme) | [dotnet-format](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md#readme) | [CSHARP_DOTNET_FORMAT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/dotnet/format?cacheSeconds=3600)](https://github.com/dotnet/format) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**DART**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart.md#readme) | [dartanalyzer](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md#readme) | [DART_DARTANALYZER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/dart-lang/sdk?cacheSeconds=3600)](https://github.com/dart-lang/sdk) | +| | [**GO**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go.md#readme) | [golangci-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md#readme) | [GO_GOLANGCI_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) | +| | | [revive](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_revive.md#readme) | [GO_REVIVE](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_revive.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/mgechev/revive?cacheSeconds=3600)](https://github.com/mgechev/revive) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**GROOVY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy.md#readme) | [npm-groovy-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md#readme) | [GROOVY_NPM_GROOVY_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md#readme) | [![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) | +| | [**JAVA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java.md#readme) | [checkstyle](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_checkstyle.md#readme) | [JAVA_CHECKSTYLE](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_checkstyle.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/checkstyle/checkstyle?cacheSeconds=3600)](https://github.com/checkstyle/checkstyle) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**JAVASCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript.md#readme) | [eslint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_eslint.md#readme) | [JAVASCRIPT_ES](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_eslint.md#readme) | [![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) | +| | | [standard](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_standard.md#readme) | [JAVASCRIPT_STANDARD](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_standard.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [prettier](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_prettier.md#readme) | [JAVASCRIPT_PRETTIER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**JSX**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx.md#readme) | [eslint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx_eslint.md#readme) | [JSX_ESLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx_eslint.md#readme) | ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**KOTLIN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin.md#readme) | [ktlint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_ktlint.md#readme) | [KOTLIN_KTLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_ktlint.md#readme) | [![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) | +| | [**LUA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua.md#readme) | [luacheck](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_luacheck.md#readme) | [LUA_LUACHECK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_luacheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/luarocks/luacheck?cacheSeconds=3600)](https://github.com/luarocks/luacheck) | +| | [**PERL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/perl.md#readme) | [perlcritic](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/perl_perlcritic.md#readme) | [PERL_PERLCRITIC](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/perl_perlcritic.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/Perl-Critic/Perl-Critic?cacheSeconds=3600)](https://github.com/Perl-Critic/Perl-Critic) | +| | [**PHP**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php.md#readme) | [phpcs](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phpcs.md#readme) | [PHP_PHPCS](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phpcs.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/squizlabs/PHP_CodeSniffer?cacheSeconds=3600)](https://github.com/squizlabs/PHP_CodeSniffer) | +| | | [phpstan](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phpstan.md#readme) | [PHP_PHPSTAN](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phpstan.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/phpstan/phpstan?cacheSeconds=3600)](https://github.com/phpstan/phpstan) | +| | | [psalm](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_psalm.md#readme) | [PHP_PSALM](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_psalm.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/vimeo/psalm?cacheSeconds=3600)](https://github.com/vimeo/psalm) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [phplint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phplint.md#readme) | [PHP_PHPLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phplint.md#readme) | | +| | [**POWERSHELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/powershell.md#readme) | [powershell](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/powershell_powershell.md#readme) | [POWERSHELL_POWERSHELL](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/powershell_powershell.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PowerShell/PSScriptAnalyzer?cacheSeconds=3600)](https://github.com/PowerShell/PSScriptAnalyzer) | +| | [**PYTHON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python.md#readme) | [pylint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_pylint.md#readme) | [PYTHON_PYLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_pylint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/pylint?cacheSeconds=3600)](https://github.com/PyCQA/pylint) | +| | | [black](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_black.md#readme) | [PYTHON_BLACK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_black.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/psf/black?cacheSeconds=3600)](https://github.com/psf/black) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [flake8](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_flake8.md#readme) | [PYTHON_FLAKE8](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_flake8.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/flake8?cacheSeconds=3600)](https://github.com/PyCQA/flake8) | +| | | [isort](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_isort.md#readme) | [PYTHON_ISORT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_isort.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/isort?cacheSeconds=3600)](https://github.com/PyCQA/isort) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [bandit](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_bandit.md#readme) | [PYTHON_BANDIT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_bandit.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/bandit?cacheSeconds=3600)](https://github.com/PyCQA/bandit) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [mypy](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_mypy.md#readme) | [PYTHON_MYPY](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_mypy.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/python/mypy?cacheSeconds=3600)](https://github.com/python/mypy) | +| | [**R**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/r.md#readme) | [lintr](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/r_lintr.md#readme) | [R_LINTR](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/r_lintr.md#readme) | | +| | [**RAKU**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/raku.md#readme) | [raku](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/raku_raku.md#readme) | [RAKU_RAKU](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/raku_raku.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rakudo/rakudo?cacheSeconds=3600)](https://github.com/rakudo/rakudo) | +| | [**RUBY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ruby.md#readme) | [rubocop](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ruby_rubocop.md#readme) | [RUBY_RUBOCOP](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ruby_rubocop.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rubocop-hq/rubocop?cacheSeconds=3600)](https://github.com/rubocop-hq/rubocop) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**RUST**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rust.md#readme) | [clippy](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rust_clippy.md#readme) | [RUST_CLIPPY](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rust_clippy.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rust-lang/rust-clippy?cacheSeconds=3600)](https://github.com/rust-lang/rust-clippy) | +| | [**SALESFORCE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce.md#readme) | [sfdx-scanner-apex](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_apex.md#readme) | [SALESFORCE_SFDX_SCANNER_APEX](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_apex.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | | [sfdx-scanner-aura](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_aura.md#readme) | [SALESFORCE_SFDX_SCANNER_AURA](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_aura.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | | [sfdx-scanner-lwc](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_lwc.md#readme) | [SALESFORCE_SFDX_SCANNER_LWC](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_lwc.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | [**SCALA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/scala.md#readme) | [scalafix](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/scala_scalafix.md#readme) | [SCALA_SCALAFIX](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/scala_scalafix.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/scalacenter/scalafix?cacheSeconds=3600)](https://github.com/scalacenter/scalafix) | +| | [**SQL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql.md#readme) | [sql-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sql_lint.md#readme) | [SQL_SQL_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sql_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md#readme) | [SQL_SQLFLUFF](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | +| | | [tsqllint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_tsqllint.md#readme) | [SQL_TSQLLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_tsqllint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/tsqllint/tsqllint?cacheSeconds=3600)](https://github.com/tsqllint/tsqllint) | +| | [**SWIFT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift.md#readme) | [swiftlint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md#readme) | [SWIFT_SWIFTLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/realm/SwiftLint?cacheSeconds=3600)](https://github.com/realm/SwiftLint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**TSX**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tsx.md#readme) | [eslint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tsx_eslint.md#readme) | [TSX_ESLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tsx_eslint.md#readme) | ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TYPESCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript.md#readme) | [eslint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_eslint.md#readme) | [TYPESCRIPT_ES](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_eslint.md#readme) | [![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) | +| | | [standard](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_standard.md#readme) | [TYPESCRIPT_STANDARD](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_standard.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [prettier](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_prettier.md#readme) | [TYPESCRIPT_PRETTIER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**Visual Basic .NET** (VBDOTNET)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet.md#readme) | [dotnet-format](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md#readme) | [VBDOTNET_DOTNET_FORMAT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md#readme) | ![formatter](https://shields.io/badge/-format-yellow) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/css.md#readme) | [stylelint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/css_stylelint.md#readme) | [CSS_STYLELINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/css_stylelint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/css_scss_lint.md#readme) | [CSS_SCSS_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/css_scss_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/env.md#readme) | [dotenv-linter](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/env_dotenv_linter.md#readme) | [ENV_DOTENV_LINTER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/env_dotenv_linter.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/graphql.md#readme) | [graphql-schema-linter](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/graphql_graphql_schema_linter.md#readme) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/graphql_graphql_schema_linter.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/html.md#readme) | [htmlhint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/html_htmlhint.md#readme) | [HTML_HTMLHINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/html_htmlhint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json.md#readme) | [jsonlint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_jsonlint.md#readme) | [JSON_JSONLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_jsonlint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_eslint_plugin_jsonc.md#readme) | [JSON_ESLINT_PLUGIN_JSONC](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_eslint_plugin_jsonc.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_v8r.md#readme) | [JSON_V8R](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_v8r.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_prettier.md#readme) | [JSON_PRETTIER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**LATEX**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/latex.md#readme) | [chktex](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/latex_chktex.md#readme) | [LATEX_CHKTEX](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/latex_chktex.md#readme) | | | -| | [**MARKDOWN**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown.md#readme) | [markdownlint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_markdownlint.md#readme) | [MARKDOWN_MARKDOWNLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_markdownlint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_remark_lint.md#readme) | [MARKDOWN_REMARK_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_remark_lint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_markdown_link_check.md#readme) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_markdown_link_check.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_markdown_table_formatter.md#readme) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_markdown_table_formatter.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/protobuf.md#readme) | [protolint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/protobuf_protolint.md#readme) | [PROTOBUF_PROTOLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/protobuf_protolint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**RST**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rst.md#readme) | [rst-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rst_rst_lint.md#readme) | [RST_RST_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rst_rst_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/twolfson/restructuredtext-lint)](https://github.com/twolfson/restructuredtext-lint/commits) | -| | | [rstcheck](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rst_rstcheck.md#readme) | [RST_RSTCHECK](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rst_rstcheck.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/myint/rstcheck)](https://github.com/myint/rstcheck/commits) | -| | | [rstfmt](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rst_rstfmt.md#readme) | [RST_RSTFMT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rst_rstfmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dzhu/rstfmt)](https://github.com/dzhu/rstfmt/commits) | -| | [**XML**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/xml.md#readme) | [xmllint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/xml_xmllint.md#readme) | [XML_XMLLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/xml_xmllint.md#readme) | | | -| | [**YAML**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/yaml.md#readme) | [prettier](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/yaml_prettier.md#readme) | [YAML_PRETTIER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/yaml_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/yaml_yamllint.md#readme) | [YAML_YAMLLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/yaml_yamllint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/yaml_v8r.md#readme) | [YAML_V8R](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/yaml_v8r.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/css.md#readme) | [stylelint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/css_stylelint.md#readme) | [CSS_STYLELINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/css_stylelint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/css_scss_lint.md#readme) | [CSS_SCSS_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/css_scss_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/env.md#readme) | [dotenv-linter](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/env_dotenv_linter.md#readme) | [ENV_DOTENV_LINTER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/env_dotenv_linter.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/graphql.md#readme) | [graphql-schema-linter](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/graphql_graphql_schema_linter.md#readme) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/graphql_graphql_schema_linter.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/html.md#readme) | [htmlhint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/html_htmlhint.md#readme) | [HTML_HTMLHINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/html_htmlhint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json.md#readme) | [jsonlint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_jsonlint.md#readme) | [JSON_JSONLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_jsonlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_eslint_plugin_jsonc.md#readme) | [JSON_ESLINT_PLUGIN_JSONC](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_eslint_plugin_jsonc.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_v8r.md#readme) | [JSON_V8R](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_v8r.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_prettier.md#readme) | [JSON_PRETTIER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**LATEX**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/latex.md#readme) | [chktex](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/latex_chktex.md#readme) | [LATEX_CHKTEX](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/latex_chktex.md#readme) | | +| | [**MARKDOWN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown.md#readme) | [markdownlint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdownlint.md#readme) | [MARKDOWN_MARKDOWNLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdownlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [remark-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_remark_lint.md#readme) | [MARKDOWN_REMARK_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_remark_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/remarkjs/remark-lint?cacheSeconds=3600)](https://github.com/remarkjs/remark-lint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdown_link_check.md#readme) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdown_link_check.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdown_table_formatter.md#readme) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdown_table_formatter.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/protobuf.md#readme) | [protolint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/protobuf_protolint.md#readme) | [PROTOBUF_PROTOLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/protobuf_protolint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**RST**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst.md#readme) | [rst-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rst_lint.md#readme) | [RST_RST_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rst_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/twolfson/restructuredtext-lint?cacheSeconds=3600)](https://github.com/twolfson/restructuredtext-lint) | +| | | [rstcheck](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rstcheck.md#readme) | [RST_RSTCHECK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rstcheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/myint/rstcheck?cacheSeconds=3600)](https://github.com/myint/rstcheck) | +| | [**XML**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/xml.md#readme) | [xmllint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/xml_xmllint.md#readme) | [XML_XMLLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/xml_xmllint.md#readme) | | +| | [**YAML**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml.md#readme) | [prettier](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_prettier.md#readme) | [YAML_PRETTIER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_yamllint.md#readme) | [YAML_YAMLLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_yamllint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_v8r.md#readme) | [YAML_V8R](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_v8r.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/action.md#readme) | [actionlint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/action_actionlint.md#readme) | [ACTION_ACTIONLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/action_actionlint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/ansible.md#readme) | [ansible-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md#readme) | [ANSIBLE_ANSIBLE_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**ARM**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/arm.md#readme) | [arm-ttk](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md#readme) | [ARM_ARM_TTK](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/Azure/arm-ttk)](https://github.com/Azure/arm-ttk/commits) | -| | [**CLOUDFORMATION**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/cloudformation.md#readme) | [cfn-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md#readme) | [CLOUDFORMATION_CFN_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/martysweet/cfn-lint)](https://github.com/martysweet/cfn-lint/commits) | -| | [**DOCKERFILE**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dockerfile.md#readme) | [dockerfilelint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dockerfile_dockerfilelint.md#readme) | [DOCKERFILE_DOCKERFILELINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dockerfile_dockerfilelint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md#readme) | [DOCKERFILE_HADOLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/editorconfig.md#readme) | [editorconfig-checker](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md#readme) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**GHERKIN**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/gherkin.md#readme) | [gherkin-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md#readme) | [GHERKIN_GHERKIN_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/vsiakka/gherkin-lint)](https://github.com/vsiakka/gherkin-lint/commits) | -| | [**KUBERNETES**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kubernetes.md#readme) | [kubeval](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kubernetes_kubeval.md#readme) | [KUBERNETES_KUBEVAL](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kubernetes_kubeval.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md#readme) | [KUBERNETES_KUBECONFORM](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/openapi.md#readme) | [spectral](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/openapi_spectral.md#readme) | [OPENAPI_SPECTRAL](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/openapi_spectral.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**PUPPET**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/puppet.md#readme) | [puppet-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md#readme) | [PUPPET_PUPPET_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/rodjek/puppet-lint)](https://github.com/rodjek/puppet-lint/commits) | -| | [**SNAKEMAKE**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/snakemake.md#readme) | [snakemake](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md#readme) | [SNAKEMAKE_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md#readme) | [SNAKEMAKE_SNAKEFMT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/tekton.md#readme) | [tekton-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md#readme) | [TEKTON_TEKTON_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | -| | [**TERRAFORM**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform.md#readme) | [tflint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_tflint.md#readme) | [TERRAFORM_TFLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_tflint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/terraform-linters/tflint)](https://github.com/terraform-linters/tflint/commits) | -| | | [terrascan](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_terrascan.md#readme) | [TERRAFORM_TERRASCAN](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_terrascan.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/accurics/terrascan)](https://github.com/accurics/terrascan/commits) | -| | | [terragrunt](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md#readme) | [TERRAFORM_TERRAGRUNT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/gruntwork-io/terragrunt)](https://github.com/gruntwork-io/terragrunt/commits) | -| | | [terraform-fmt](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md#readme) | [TERRAFORM_TERRAFORM_FMT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/hashicorp/terraform)](https://github.com/hashicorp/terraform/commits) | -| | | [checkov](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_checkov.md#readme) | [TERRAFORM_CHECKOV](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_checkov.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/bridgecrewio/checkov)](https://github.com/bridgecrewio/checkov/commits) | -| | | [kics](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_kics.md#readme) | [TERRAFORM_KICS](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_kics.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/checkmarx/kics)](https://github.com/checkmarx/kics/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action.md#readme) | [actionlint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md#readme) | [ACTION_ACTIONLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible.md#readme) | [ansible-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md#readme) | [ANSIBLE_ANSIBLE_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**ARM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm.md#readme) | [arm-ttk](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md#readme) | [ARM_ARM_TTK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md#readme) | | +| | [**CLOUDFORMATION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation.md#readme) | [cfn-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md#readme) | [CLOUDFORMATION_CFN_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/aws-cloudformation/cfn-lint?cacheSeconds=3600)](https://github.com/aws-cloudformation/cfn-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile.md#readme) | [hadolint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md#readme) | [DOCKERFILE_HADOLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig.md#readme) | [editorconfig-checker](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md#readme) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**GHERKIN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin.md#readme) | [gherkin-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md#readme) | [GHERKIN_GHERKIN_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/vsiakka/gherkin-lint?cacheSeconds=3600)](https://github.com/vsiakka/gherkin-lint) | +| | [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md#readme) | [kubeval](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeval.md#readme) | [KUBERNETES_KUBEVAL](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeval.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md#readme) | [KUBERNETES_KUBECONFORM](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi.md#readme) | [spectral](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md#readme) | [OPENAPI_SPECTRAL](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**PUPPET**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet.md#readme) | [puppet-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md#readme) | [PUPPET_PUPPET_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rodjek/puppet-lint?cacheSeconds=3600)](https://github.com/rodjek/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**SNAKEMAKE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake.md#readme) | [snakemake](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md#readme) | [SNAKEMAKE_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | | [snakefmt](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md#readme) | [SNAKEMAKE_SNAKEFMT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**TEKTON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton.md#readme) | [tekton-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md#readme) | [TEKTON_TEKTON_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md#readme) | [tflint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md#readme) | [TERRAFORM_TFLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/terraform-linters/tflint?cacheSeconds=3600)](https://github.com/terraform-linters/tflint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [terrascan](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md#readme) | [TERRAFORM_TERRASCAN](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/accurics/terrascan?cacheSeconds=3600)](https://github.com/accurics/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [terragrunt](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md#readme) | [TERRAFORM_TERRAGRUNT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/gruntwork-io/terragrunt?cacheSeconds=3600)](https://github.com/gruntwork-io/terragrunt) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [terraform-fmt](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md#readme) | [TERRAFORM_TERRAFORM_FMT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [checkov](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_checkov.md#readme) | [TERRAFORM_CHECKOV](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_checkov.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [kics](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_kics.md#readme) | [TERRAFORM_KICS](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_kics.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/copypaste.md#readme) | [jscpd](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md#readme) | [COPYPASTE_JSCPD](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/credentials.md#readme) | [secretlint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/credentials_secretlint.md#readme) | [CREDENTIALS_SECRETLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/credentials_secretlint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/git.md#readme) | [git_diff](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/git_git_diff.md#readme) | [GIT_GIT_DIFF](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/git_git_diff.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/spell.md#readme) | [misspell](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/spell_misspell.md#readme) | [SPELL_MISSPELL](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/spell_misspell.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/spell_cspell.md#readme) | [SPELL_CSPELL](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/spell_cspell.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste.md#readme) | [jscpd](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md#readme) | [COPYPASTE_JSCPD](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md#readme) | [devskim](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md#readme) | [REPOSITORY_DEVSKIM](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [dustilock](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md#readme) | [REPOSITORY_DUSTILOCK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/Checkmarx/dustilock?cacheSeconds=3600)](https://github.com/Checkmarx/dustilock) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [git_diff](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md#readme) | [REPOSITORY_GIT_DIFF](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md#readme) | [REPOSITORY_GITLEAKS](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_goodcheck.md#readme) | [REPOSITORY_GOODCHECK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_goodcheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md#readme) | [REPOSITORY_SECRETLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md#readme) | [REPOSITORY_SEMGREP](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [syft](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md#readme) | [REPOSITORY_SYFT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/anchore/syft?cacheSeconds=3600)](https://github.com/anchore/syft) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md#readme) | [REPOSITORY_TRIVY](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md#readme) | [misspell](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_misspell.md#readme) | [SPELL_MISSPELL](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_misspell.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md#readme) | [SPELL_CSPELL](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | @@ -396,7 +400,7 @@ jobs: with: name: MegaLinter reports path: | - report + megalinter-reports mega-linter.log # Create pull request if applicable (for now works only on PR from same repository, not from forks) @@ -650,45 +654,46 @@ Configuration is assisted with auto-completion and validation in most commonly u ### Common variables -| **ENV VAR** | **Default Value** | **Notes** | -|-----------------------------------------------------|------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **ADDITIONAL_EXCLUDED_DIRECTORIES** | \[\] | List of additional excluded directory basenames. They are excluded at any nested level. | -| [**APPLY_FIXES**](#apply-fixes) | `none` | Activates formatting and auto-fixing [(more info)](#apply-fixes) | -| **DEFAULT_BRANCH** | `HEAD` | Deprecated: The name of the repository's default branch. | -| **DEFAULT_WORKSPACE** | `/tmp/lint` | The location containing files to lint if you are running locally. | -| **DISABLE_ERRORS** | `false` | Flag to have the linter complete with exit code 0 even if errors were detected. | -| [**DISABLE**](#activation-and-deactivation) | | List of disabled descriptors keys [(more info)](#activation-and-deactivation) | -| [**DISABLE_LINTERS**](#activation-and-deactivation) | | List of disabled linters keys [(more info)](#activation-and-deactivation) | -| [**ENABLE**](#activation-and-deactivation) | | List of enabled descriptors keys [(more info)](#activation-and-deactivation) | -| [**ENABLE_LINTERS**](#activation-and-deactivation) | | List of enabled linters keys [(more info)](#activation-and-deactivation) | -| **EXCLUDED_DIRECTORIES** | \[...many values...\] | List of excluded directory basenames. They are 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 | -| **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 auto-fixed sources, even if there are no errors | -| [**FILTER_REGEX_EXCLUDE**](#filter-linted-files) | `none` | Regular expression defining which files will be excluded from linting [(more info)](#filter-linted-files) .ex: `.*src/test.*`) | -| [**FILTER_REGEX_INCLUDE**](#filter-linted-files) | `all` | Regular expression defining which files will be processed by linters [(more info)](#filter-linted-files) .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 (and not warnings) if this variable is set to `false` | -| **GITHUB_WORKSPACE** | `` | Base directory for `REPORT_OUTPUT_FOLDER`, for user-defined linter rules location, for location of linted files if `DEFAULT_WORKSPACE` is not 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 `.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 (ex: `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`. | -| **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` | -| **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 | -| **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 | -| [**PLUGINS**](#plugins) | \[\] | List of plugin urls to install and run during MegaLinter run | -| [**POST_COMMANDS**](#post-commands) | \[\] | Custom bash commands to run after linters | -| [**PRE_COMMANDS**](#pre-commands) | \[\] | Custom bash commands to run before linters | -| **PRINT_ALPACA** | `true` | Enable printing alpaca image to console | -| **PRINT_ALL_FILES** | `true` | Display only the number of files processed by a linter, not all file names | -| **REPORT_OUTPUT_FOLDER** | `${GITHUB_WORKSPACE}/report` | Directory for generating report files | -| **SHOW_ELAPSED_TIME** | `false` | Displays elapsed time in reports | -| **SHOW_SKIPPED_LINTERS** | `true` | Displays all disabled linters mega-linter could have run | -| **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. | +| **ENV VAR** | **Default Value** | **Notes** | +|------------------------------------------------------------|------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **ADDITIONAL_EXCLUDED_DIRECTORIES** | \[\] | List of additional excluded directory basenames. They are excluded at any nested level. | +| [**APPLY_FIXES**](#apply-fixes) | `none` | Activates formatting and auto-fixing [(more info)](#apply-fixes) | +| **DEFAULT_BRANCH** | `HEAD` | Deprecated: The name of the repository's default branch. | +| **DEFAULT_WORKSPACE** | `/tmp/lint` | The location containing files to lint if you are running locally. | +| **DISABLE_ERRORS** | `false` | Flag to have the linter complete with exit code 0 even if errors were detected. | +| [**DISABLE**](#activation-and-deactivation) | | List of disabled descriptors keys [(more info)](#activation-and-deactivation) | +| [**DISABLE_LINTERS**](#activation-and-deactivation) | | List of disabled linters keys [(more info)](#activation-and-deactivation) | +| [**DISABLE_ERRORS_LINTERS**](#activation-and-deactivation) | | List of enabled but not blocking linters keys [(more info)](#activation-and-deactivation) | +| [**ENABLE**](#activation-and-deactivation) | | List of enabled descriptors keys [(more info)](#activation-and-deactivation) | +| [**ENABLE_LINTERS**](#activation-and-deactivation) | | List of enabled linters keys [(more info)](#activation-and-deactivation) | +| **EXCLUDED_DIRECTORIES** | \[...many values...\] | List of excluded directory basenames. They are 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 | +| **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 auto-fixed sources, even if there are no errors | +| [**FILTER_REGEX_EXCLUDE**](#filter-linted-files) | `none` | Regular expression defining which files will be excluded from linting [(more info)](#filter-linted-files) .ex: `.*src/test.*`) | +| [**FILTER_REGEX_INCLUDE**](#filter-linted-files) | `all` | Regular expression defining which files will be processed by linters [(more info)](#filter-linted-files) .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 (and not warnings) if this variable is set to `false` | +| **GITHUB_WORKSPACE** | `` | Base directory for `REPORT_OUTPUT_FOLDER`, for user-defined linter rules location, for location of linted files if `DEFAULT_WORKSPACE` is not 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 `.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 (ex: `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`. | +| **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` | +| **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 | +| **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 | +| [**PLUGINS**](#plugins) | \[\] | List of plugin urls to install and run during MegaLinter run | +| [**POST_COMMANDS**](#post-commands) | \[\] | Custom bash commands to run after linters | +| [**PRE_COMMANDS**](#pre-commands) | \[\] | 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 | +| **REPORT_OUTPUT_FOLDER** | `${GITHUB_WORKSPACE}/report` | Directory for generating report files | +| **SHOW_ELAPSED_TIME** | `false` | Displays elapsed time in reports | +| **SHOW_SKIPPED_LINTERS** | `true` | Displays all disabled linters mega-linter could have run | +| **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. | ### Activation and deactivation @@ -698,14 +703,16 @@ MegaLinter have all linters enabled by default, but allows to enable only some, - If `ENABLE_LINTERS` is set, only listed linters will be processed - If `DISABLE` is set, the linters in the listed descriptors will be skipped - If `DISABLE_LINTERS` is set, the listed linters will be skipped +- If `DISABLE_ERRORS_LINTERS` is set, the linter linters will be run, but if errors are found, they will be considered as non blocking Examples: -- Run all javascript and groovy linters except STANDARD javascript linter +- Run all javascript and groovy linters except STANDARD javascript linter. DevSkip errors will be non-blocking ```yaml ENABLE: JAVASCRIPT,GROOVY DISABLE_LINTERS: JAVASCRIPT_STANDARD +DISABLE_ERRORS_LINTERS: REPOSITORY_DEVSKIM ``` - Run all linters except PHP linters (PHP_BUILTIN, PHP_PHPCS, PHP_PHPSTAN, PHP_PSALM) @@ -822,22 +829,21 @@ _The following table does not display docker pulls from [MegaLinter v4 images](h | | Flavor | Description | Embedded linters | Info | |:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://github.com/megalinter/megalinter/tree/main/docs/flavors/ci_light.md#readme) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://github.com/megalinter/megalinter/tree/main/docs/flavors/dart.md#readme) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://github.com/megalinter/megalinter/tree/main/docs/flavors/documentation.md#readme) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://github.com/megalinter/megalinter/tree/main/docs/flavors/dotnet.md#readme) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://github.com/megalinter/megalinter/tree/main/docs/flavors/go.md#readme) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://github.com/megalinter/megalinter/tree/main/docs/flavors/java.md#readme) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://github.com/megalinter/megalinter/tree/main/docs/flavors/javascript.md#readme) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://github.com/megalinter/megalinter/tree/main/docs/flavors/php.md#readme) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://github.com/megalinter/megalinter/tree/main/docs/flavors/python.md#readme) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://github.com/megalinter/megalinter/tree/main/docs/flavors/ruby.md#readme) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://github.com/megalinter/megalinter/tree/main/docs/flavors/rust.md#readme) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://github.com/megalinter/megalinter/tree/main/docs/flavors/salesforce.md#readme) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://github.com/megalinter/megalinter/tree/main/docs/flavors/scala.md#readme) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://github.com/megalinter/megalinter/tree/main/docs/flavors/swift.md#readme) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://github.com/megalinter/megalinter/tree/main/docs/flavors/terraform.md#readme) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/ci_light.md#readme) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/documentation.md#readme) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/dotnet.md#readme) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/go.md#readme) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/java.md#readme) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/javascript.md#readme) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/php.md#readme) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/python.md#readme) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/ruby.md#readme) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/rust.md#readme) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/salesforce.md#readme) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/security.md#readme) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/swift.md#readme) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://github.com/oxsecurity/megalinter/tree/main/docs/flavors/terraform.md#readme) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | If you need a new flavor, [post an issue](https://github.com/megalinter/megalinter/issues) :wink: diff --git a/TEMPLATES/.dockerfilelintrc b/TEMPLATES/.dockerfilelintrc deleted file mode 100644 index 92aee6cad0b..00000000000 --- a/TEMPLATES/.dockerfilelintrc +++ /dev/null @@ -1,104 +0,0 @@ ---- -########################### -########################### -## Dockerfile Lint rules ## -########################### -########################### - -################################# -# Default is 'on' for all rules # -# You can disable as needed. # -################################# -# Additional Info can be found at: -# https://github.com/replicatedhq/dockerfilelint - -# Set the rules -rules: - # All commands in a Dockerfile require at least 1 argument - required_params: on - - # For clarity and readability, all instructions in - # a Dockerfile should be uppercase - uppercase_commands: on - - # The first instruction in a Dockerfile must specify - # the base image using a FROM - from_first: on - - # This line is not a valid Dockerfile line - invalid_line: on - - # Use of sudo is not allowed in a Dockerfile - sudo_usage: on - - # Consider using a `--no-install-recommends` when `apt-get` - # installing packages - apt-get_missing_param: on - - # Consider using a `--no-install-recommends` when `apt-get` - # installing packages - apt-get_recommends: on - - # Use of `apt-get upgrade` is not allowed in a Dockerfile - apt-get-upgrade: on - - # Use of `apt-get dist-upgrade` is not allowed in a Dockerfile - apt-get-dist-upgrade: on - - # All instances of `apt-get update` should have the `apt-get install` - # commands on the same line to reduce image size - apt-get-update_require_install: on - - # Consider using a `--no-cache` (supported in alpine linux >= 3.3) or - # `--update` followed by the command `rm -rf /var/cache/apk/*` - # when `apk` adding packages. This will result in a smaller image size - apkadd-missing_nocache_or_updaterm: on - - # Consider using a `--virtual` or `-t` switch to group multiple packages - # for easy cleanup. This will help ensure future authors will continue - # to clean up build dependencies and other temporary packages - apkadd-missing-virtual: on - - # Exposing ports should only be valid port numbers - invalid_port: on - - # Only valid commands are allowed in a Dockerfile - invalid_command: on - - # Expose Only Container Port - expose_host_port: on - - # Using LABEL should be in key=value format - label_invalid: on - - # Base images should specify a tag to use - missing_tag: on - - # Base images should not use the latest tag - latest_tag: off - - # This command has extra arguments and will be ignored - extra_args: on - - # This command requires additional arguments - missing_args: on - - # All files referenced in an ADD command should - # be part of the Docker build context - add_src_invalid: on - - # When adding multiple files, the destination should be a directory - add_dest_invalid: on - - # Using a WORKDIR parameter that has spaces should be escaped - invalid_workdir: on - - # The arguments to this command are invalid - invalid_format: on - - # Use of apt-get update should be paired with - # rm -rf /var/lib/apt/lists/* in the same layer - apt-get_missing_rm: on - - # This INSTRUCTION is deprecated as of Docker 1.13 - deprecated_in_1.13: on diff --git a/TEMPLATES/.python-lint b/TEMPLATES/.pylintrc similarity index 87% rename from TEMPLATES/.python-lint rename to TEMPLATES/.pylintrc index d0e8a1d5146..024390c2af2 100644 --- a/TEMPLATES/.python-lint +++ b/TEMPLATES/.pylintrc @@ -55,82 +55,7 @@ confidence= # --enable=similarities". If you want to run only the classes checker, but have # no Warning level messages displayed, use"--disable=all --enable=classes # --disable=W" -disable=print-statement, - parameter-unpacking, - unpacking-in-except, - old-raise-syntax, - backtick, - long-suffix, - old-ne-operator, - old-octal-literal, - import-star-module-level, - non-ascii-bytes-literal, - raw-checker-failed, - bad-inline-option, - locally-disabled, - locally-enabled, - file-ignored, - suppressed-message, - useless-suppression, - deprecated-pragma, - apply-builtin, - basestring-builtin, - buffer-builtin, - cmp-builtin, - coerce-builtin, - execfile-builtin, - file-builtin, - long-builtin, - raw_input-builtin, - reduce-builtin, - standarderror-builtin, - unicode-builtin, - xrange-builtin, - coerce-method, - delslice-method, - getslice-method, - setslice-method, - no-absolute-import, - old-division, - dict-iter-method, - dict-view-method, - next-method-called, - metaclass-assignment, - indexing-exception, - raising-string, - reload-builtin, - oct-method, - hex-method, - nonzero-method, - cmp-method, - input-builtin, - round-builtin, - intern-builtin, - unichr-builtin, - map-builtin-not-iterating, - zip-builtin-not-iterating, - range-builtin-not-iterating, - filter-builtin-not-iterating, - using-cmp-argument, - eq-without-hash, - div-method, - idiv-method, - rdiv-method, - exception-message-attribute, - invalid-str-codec, - sys-max-int, - bad-python3-import, - deprecated-string-function, - deprecated-str-translate-call, - deprecated-itertools-function, - deprecated-types-field, - next-method-defined, - dict-items-not-iterating, - dict-keys-not-iterating, - dict-values-not-iterating, - import-error, - C0330, - C0326 +# disable= # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option @@ -412,7 +337,7 @@ indent-after-paren=4 indent-string=' ' # Maximum number of characters on a single line. -max-line-length=88 +max-line-length=100 # Maximum number of lines in a module max-module-lines=1000 diff --git a/TEMPLATES/goodcheck.yml b/TEMPLATES/goodcheck.yml new file mode 100644 index 00000000000..d927f2f4dd9 --- /dev/null +++ b/TEMPLATES/goodcheck.yml @@ -0,0 +1,18 @@ +rules: + # id, pattern, message are required attributes. + - id: example.github + pattern: Github + message: Do you want to write GitHub? + glob: + - "**/*" + fail: + - Signup via Github + pass: + - Signup via GitHub + +# You can skip checking files. +exclude: + - node_modules + - vendor + - "**/goodcheck.yml" + diff --git a/TEMPLATES/java-pmd-ruleset.xml b/TEMPLATES/java-pmd-ruleset.xml new file mode 100644 index 00000000000..a1ed0ec28a8 --- /dev/null +++ b/TEMPLATES/java-pmd-ruleset.xml @@ -0,0 +1,21 @@ + + + + Default RuleSet for MegaLinter + + + .*/java-domainbuilder/*.* + .*/app-setup/*.* + .*/fflib_*.* + .*/json2java/*.* + + + + + + + + + + + \ No newline at end of file diff --git a/TEMPLATES/mega-linter.yml b/TEMPLATES/mega-linter.yml index 42bce48536d..b901de4a1b2 100644 --- a/TEMPLATES/mega-linter.yml +++ b/TEMPLATES/mega-linter.yml @@ -1,6 +1,6 @@ --- # MegaLinter GitHub Action configuration file -# More info at https://megalinter.github.io +# More info at https://oxsecurity.github.io/megalinter name: MegaLinter on: @@ -26,7 +26,7 @@ jobs: steps: # Git Checkout - name: Checkout Code - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: token: ${{ secrets.PAT || secrets.GITHUB_TOKEN }} fetch-depth: 0 @@ -35,11 +35,11 @@ jobs: - name: MegaLinter id: ml # You can override MegaLinter flavor used to have faster performances - # More info at https://megalinter.github.io/flavors/ - uses: megalinter/megalinter@v5 + # More info at https://oxsecurity.github.io/megalinter/flavors/ + uses: oxsecurity/megalinter@v6 env: # All available variables are described in documentation - # https://megalinter.github.io/configuration/ + # https://oxsecurity.github.io/megalinter/configuration/ VALIDATE_ALL_CODEBASE: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }} # Validates all source when push on main, else just the git diff with main. Override with true if you always want to lint all sources GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # ADD YOUR CUSTOM ENV VARIABLES HERE OR DEFINE THEM IN A FILE .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY @@ -52,7 +52,7 @@ jobs: with: name: MegaLinter reports path: | - report + megalinter-reports mega-linter.log # Create pull request if applicable (for now works only on PR from same repository, not from forks) diff --git a/action.yml b/action.yml index 94f774443c4..f5c3cdc0843 100644 --- a/action.yml +++ b/action.yml @@ -7,7 +7,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter:v5.17.0" + image: "docker://oxsecurity/megalinter:v6-alpha" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/build.sh b/build.sh index 87b20b7315b..6fd90fec8da 100755 --- a/build.sh +++ b/build.sh @@ -9,13 +9,6 @@ else python ./.automation/build.py "$@" fi -# Prettify markdown tables -echo "Formatting markdown tables..." -# shellcheck disable=SC2086 -MD_FILES=$(find . -type f -name "*.md" -not -path "*/node_modules/*" -not -path "*/.automation/*" -not -path "*/licenses/*") && npx markdown-table-formatter $MD_FILES -# shellcheck disable=SC2086 -MD_FILES_2=$(find . -type f -name "*.md" -not -path "*/node_modules/*" -not -path "*/.automation/*" -path "*/licenses/*") && npx markdown-table-formatter $MD_FILES_2 - # Build online documentation if type python3 >/dev/null 2>/dev/null; then python3 -m mkdocs build diff --git a/docs/all_linters.md b/docs/all_linters.md index 7158d1576ea..c3170214704 100644 --- a/docs/all_linters.md +++ b/docs/all_linters.md @@ -3,92 +3,96 @@ # References -| Linter | Version | License | Descriptors | Reference status | URL | -|:--------------------------------------------------------------------------------------------------------|:--------------:|:-------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------:| -| [**actionlint**](https://github.com/rhysd/actionlint){target=_blank} | 1.6.13 | [MIT](licenses/actionlint.md) | [ACTION](descriptors/action_actionlint.md) | :white_circle: | [Repository](https://github.com/rhysd/actionlint){target=_blank} | -| [**ansible-lint**](https://github.com/ansible/ansible-lint){target=_blank} | 6.0.2 | [GPL-3.0](licenses/ansible-lint.md) | [ANSIBLE](descriptors/ansible_ansible_lint.md) | :white_circle: | [Repository](https://github.com/ansible/ansible-lint){target=_blank} | -| [**arm-ttk**](https://github.com/Azure/arm-ttk){target=_blank} | N/A | | [ARM](descriptors/arm_arm_ttk.md) | :white_circle: | [Web Site](https://github.com/Azure/arm-ttk){target=_blank} | -| [**bandit**](https://github.com/PyCQA/bandit){target=_blank} | 1.7.4 | [Apache-2.0](licenses/bandit.md) | [PYTHON](descriptors/python_bandit.md) | :white_circle: | [Repository](https://github.com/PyCQA/bandit){target=_blank} | -| [**bash-exec**](https://tiswww.case.edu/php/chet/bash/bashtop.html){target=_blank} | 5.1.16 | | [BASH](descriptors/bash_bash_exec.md) | | [Web Site](https://tiswww.case.edu/php/chet/bash/bashtop.html){target=_blank} | -| [**black**](https://github.com/psf/black){target=_blank} | 22.3.0 | [MIT](licenses/black.md) | [PYTHON](descriptors/python_black.md) | :white_circle: | [Repository](https://github.com/psf/black){target=_blank} | -| [**cfn-lint**](https://github.com/martysweet/cfn-lint){target=_blank} | 0.61.1 | | [CLOUDFORMATION](descriptors/cloudformation_cfn_lint.md) | :white_circle: | [Web Site](https://github.com/martysweet/cfn-lint){target=_blank} | -| [**checkov**](https://github.com/bridgecrewio/checkov){target=_blank} | 3.9 | [Apache-2.0](licenses/checkov.md) | [TERRAFORM](descriptors/terraform_checkov.md) | :no_entry_sign: | [Repository](https://github.com/bridgecrewio/checkov){target=_blank} | -| [**checkstyle**](https://github.com/checkstyle/checkstyle){target=_blank} | 10.3 | [LGPL-2.1](licenses/checkstyle.md) | [JAVA](descriptors/java_checkstyle.md) | :heart: | [MegaLinter reference](https://checkstyle.sourceforge.io/index.html#Related_Tools_Active_Tools){target=_blank} | -| [**chktex**](https://www.nongnu.org/chktex){target=_blank} | 1.7.6 | | [LATEX](descriptors/latex_chktex.md) | :white_circle: | [Web Site](https://www.nongnu.org/chktex){target=_blank} | -| [**clippy**](https://github.com/rust-lang/rust-clippy){target=_blank} | 0.1.61 | | [RUST](descriptors/rust_clippy.md) | :white_circle: | [Web Site](https://github.com/rust-lang/rust-clippy){target=_blank} | -| [**clj-kondo**](https://github.com/borkdude/clj-kondo){target=_blank} | 2022.04.25 | | [CLOJURE](descriptors/clojure_clj_kondo.md) | :heart: | [MegaLinter reference](https://github.com/borkdude/clj-kondo/blob/master/doc/ci-integration.md#github){target=_blank} | -| [**coffeelint**](https://github.com/clutchski/coffeelint){target=_blank} | 5.2.9 | [Other](licenses/coffeelint.md) | [COFFEE](descriptors/coffee_coffeelint.md) | :white_circle: | [Repository](https://github.com/clutchski/coffeelint){target=_blank} | -| [**cpplint**](https://github.com/cpplint/cpplint){target=_blank} | 1.6.0 | | [C](descriptors/c_cpplint.md)
[CPP](descriptors/cpp_cpplint.md) | :white_circle: | [Web Site](https://github.com/cpplint/cpplint){target=_blank} | -| [**cspell**](https://github.com/streetsidesoftware/cspell){target=_blank} | 6.1.2 | [MIT](licenses/cspell.md) | [SPELL](descriptors/spell_cspell.md) | :heart: | [MegaLinter reference](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell#mega-linter){target=_blank} | -| [**dartanalyzer**](https://github.com/dart-lang/sdk){target=_blank} | N/A | [BSD-3-Clause](licenses/dartanalyzer.md) | [DART](descriptors/dart_dartanalyzer.md) | :no_entry_sign: | [Repository](https://github.com/dart-lang/sdk){target=_blank} | -| [**dockerfilelint**](https://github.com/replicatedhq/dockerfilelint){target=_blank} | 1.8.0 | | [DOCKERFILE](descriptors/dockerfile_dockerfilelint.md) | :white_circle: | [Web Site](https://github.com/replicatedhq/dockerfilelint){target=_blank} | -| [**dotenv-linter**](https://github.com/dotenv-linter/dotenv-linter){target=_blank} | 3.2.0 | [MIT](licenses/dotenv-linter.md) | [ENV](descriptors/env_dotenv_linter.md) | :heart: | [MegaLinter reference](https://dotenv-linter.github.io/#/integrations/mega_linter){target=_blank} | -| [**dotnet-format**](https://github.com/dotnet/format){target=_blank} | 000 | | [CSHARP](descriptors/csharp_dotnet_format.md)
[VBDOTNET](descriptors/vbdotnet_dotnet_format.md) | :white_circle: | [Web Site](https://github.com/dotnet/format){target=_blank} | -| [**editorconfig-checker**](https://github.com/editorconfig-checker/editorconfig-checker){target=_blank} | 2.4.0 | [MIT](licenses/editorconfig-checker.md) | [EDITORCONFIG](descriptors/editorconfig_editorconfig_checker.md) | :heart: | [MegaLinter reference](https://github.com/editorconfig-checker/editorconfig-checker#mega-linter){target=_blank} | -| [**eslint**](https://github.com/eslint/eslint){target=_blank} | 8.18.0 | [MIT](licenses/eslint.md) | [JAVASCRIPT](descriptors/javascript_eslint.md)
[JSX](descriptors/jsx_eslint.md)
[TSX](descriptors/tsx_eslint.md)
[TYPESCRIPT](descriptors/typescript_eslint.md) | :heart: | [MegaLinter reference](https://eslint.org/docs/user-guide/integrations#source-control){target=_blank} | -| [**eslint-plugin-jsonc**](https://github.com/ota-meshi/eslint-plugin-jsonc){target=_blank} | 2.3.0 | [MIT](licenses/eslint-plugin-jsonc.md) | [JSON](descriptors/json_eslint_plugin_jsonc.md) | :heart: | [MegaLinter reference](https://eslint.org/docs/user-guide/integrations#source-control){target=_blank} | -| [**flake8**](https://github.com/PyCQA/flake8){target=_blank} | 4.0.1 | [MIT](licenses/flake8.md) | [PYTHON](descriptors/python_flake8.md) | :white_circle: | [Repository](https://github.com/PyCQA/flake8){target=_blank} | -| [**gherkin-lint**](https://github.com/vsiakka/gherkin-lint){target=_blank} | N/A | | [GHERKIN](descriptors/gherkin_gherkin_lint.md) | :white_circle: | [Web Site](https://github.com/vsiakka/gherkin-lint){target=_blank} | -| [**git_diff**](https://github.com/git/git){target=_blank} | 2.30.3 | [Other](licenses/git_diff.md) | [GIT](descriptors/git_git_diff.md) | | [Repository](https://github.com/git/git){target=_blank} | -| [**golangci-lint**](https://github.com/golangci/golangci-lint){target=_blank} | 1.46.2 | [GPL-3.0](licenses/golangci-lint.md) | [GO](descriptors/go_golangci_lint.md) | :white_circle: | [Repository](https://github.com/golangci/golangci-lint){target=_blank} | -| [**graphql-schema-linter**](https://github.com/cjoudrey/graphql-schema-linter){target=_blank} | 3.0.1 | | [GRAPHQL](descriptors/graphql_graphql_schema_linter.md) | :hammer_and_wrench: | [Pull Request](https://github.com/cjoudrey/graphql-schema-linter/pull/272){target=_blank} | -| [**hadolint**](https://github.com/hadolint/hadolint){target=_blank} | 2.10.0 | | [DOCKERFILE](descriptors/dockerfile_hadolint.md) | :heart: | [MegaLinter reference](https://github.com/hadolint/hadolint/blob/master/docs/INTEGRATION.md#mega-linter){target=_blank} | -| [**htmlhint**](https://github.com/htmlhint/HTMLHint){target=_blank} | 1.1.4 | [MIT](licenses/htmlhint.md) | [HTML](descriptors/html_htmlhint.md) | :heart: | [MegaLinter reference](https://htmlhint.com/docs/user-guide/integrations/task-runner){target=_blank} | -| [**isort**](https://github.com/PyCQA/isort){target=_blank} | 5.10.1 | [MIT](licenses/isort.md) | [PYTHON](descriptors/python_isort.md) | :white_circle: | [Repository](https://github.com/PyCQA/isort){target=_blank} | -| [**jscpd**](https://github.com/kucherenko/jscpd){target=_blank} | 3.3.26 | [MIT](licenses/jscpd.md) | [COPYPASTE](descriptors/copypaste_jscpd.md) | :heart: | [MegaLinter reference](https://github.com/kucherenko/jscpd#who-uses-jscpd){target=_blank} | -| [**jsonlint**](https://github.com/zaach/jsonlint){target=_blank} | 1.6.3 | | [JSON](descriptors/json_jsonlint.md) | :hammer_and_wrench: | [Pull Request](https://github.com/zaach/jsonlint/pull/127){target=_blank} | -| [**kics**](https://github.com/checkmarx/kics){target=_blank} | 1.5.11 | [Apache-2.0](licenses/kics.md) | [TERRAFORM](descriptors/terraform_kics.md) | :heart: | [MegaLinter reference](https://docs.kics.io/latest/integrations/){target=_blank} | -| [**ktlint**](https://github.com/pinterest/ktlint){target=_blank} | 0.46.1 | [MIT](licenses/ktlint.md) | [KOTLIN](descriptors/kotlin_ktlint.md) | :heart: | [MegaLinter reference](https://github.com/pinterest/ktlint#-with-continuous-integration){target=_blank} | -| [**kubeconform**](https://github.com/yannh/kubeconform){target=_blank} | 0.4.12 | [Other](licenses/kubeconform.md) | [KUBERNETES](descriptors/kubernetes_kubeconform.md) | :white_circle: | [Repository](https://github.com/yannh/kubeconform){target=_blank} | -| [**kubeval**](https://github.com/instrumenta/kubeval){target=_blank} | 0.16.1 | [Other](licenses/kubeval.md) | [KUBERNETES](descriptors/kubernetes_kubeval.md) | :white_circle: | [Repository](https://github.com/instrumenta/kubeval){target=_blank} | -| [**lintr**](https://lintr.r-lib.org/){target=_blank} | N/A | | [R](descriptors/r_lintr.md) | :white_circle: | [Web Site](https://lintr.r-lib.org/){target=_blank} | -| [**luacheck**](https://github.com/luarocks/luacheck){target=_blank} | 0.26.1 | [MIT](licenses/luacheck.md) | [LUA](descriptors/lua_luacheck.md) | :no_entry_sign: | [Repository](https://github.com/luarocks/luacheck){target=_blank} | -| [**markdown-link-check**](https://github.com/tcort/markdown-link-check){target=_blank} | 3.10.2 | | [MARKDOWN](descriptors/markdown_markdown_link_check.md) | :heart: | [MegaLinter reference](https://github.com/tcort/markdown-link-check#run-in-other-tools){target=_blank} | -| [**markdown-table-formatter**](https://github.com/nvuillam/markdown-table-formatter){target=_blank} | 1.3.0 | [MIT](licenses/markdown-table-formatter.md) | [MARKDOWN](descriptors/markdown_markdown_table_formatter.md) | :white_circle: | [Repository](https://github.com/nvuillam/markdown-table-formatter){target=_blank} | -| [**markdownlint**](https://github.com/DavidAnson/markdownlint){target=_blank} | 0.31.1 | | [MARKDOWN](descriptors/markdown_markdownlint.md) | :white_circle: | [Web Site](https://github.com/DavidAnson/markdownlint){target=_blank} | -| [**misspell**](https://github.com/client9/misspell){target=_blank} | 0.3.4 | | [SPELL](descriptors/spell_misspell.md) | :white_circle: | [Web Site](https://github.com/client9/misspell){target=_blank} | -| [**mypy**](https://github.com/python/mypy){target=_blank} | 0.961 | [Other](licenses/mypy.md) | [PYTHON](descriptors/python_mypy.md) | | [Repository](https://github.com/python/mypy){target=_blank} | -| [**npm-groovy-lint**](https://github.com/nvuillam/npm-groovy-lint){target=_blank} | 9.5.0 | [GPL-3.0](licenses/npm-groovy-lint.md) | [GROOVY](descriptors/groovy_npm_groovy_lint.md) | :heart: | [MegaLinter reference](https://nvuillam.github.io/npm-groovy-lint/#mega-linter){target=_blank} | -| [**perlcritic**](https://github.com/Perl-Critic/Perl-Critic){target=_blank} | 1.140 | [Other](licenses/perlcritic.md) | [PERL](descriptors/perl_perlcritic.md) | :white_circle: | [Repository](https://github.com/Perl-Critic/Perl-Critic){target=_blank} | -| [**php**](https://github.com/php/php-src){target=_blank} | 7.4.26 | [Other](licenses/php.md) | [PHP](descriptors/php_php.md) | | [Repository](https://github.com/php/php-src){target=_blank} | -| [**phpcs**](https://github.com/squizlabs/PHP_CodeSniffer){target=_blank} | 3.7.1 | | [PHP](descriptors/php_phpcs.md) | :white_circle: | [Web Site](https://github.com/squizlabs/PHP_CodeSniffer){target=_blank} | -| [**phplint**](https://github.com/overtrue/phplint){target=_blank} | 3.0 | | [PHP](descriptors/php_phplint.md) | :white_circle: | [Web Site](https://github.com/overtrue/phplint){target=_blank} | -| [**phpstan**](https://github.com/phpstan/phpstan){target=_blank} | 1.7.15 | [MIT](licenses/phpstan.md) | [PHP](descriptors/php_phpstan.md) | :white_circle: | [Repository](https://github.com/phpstan/phpstan){target=_blank} | -| [**powershell**](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | 7.2.5 | | [POWERSHELL](descriptors/powershell_powershell.md) | :white_circle: | [Web Site](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | -| [**prettier**](https://github.com/prettier/prettier){target=_blank} | 2.7.1 | [MIT](licenses/prettier.md) | [JAVASCRIPT](descriptors/javascript_prettier.md)
[JSON](descriptors/json_prettier.md)
[TYPESCRIPT](descriptors/typescript_prettier.md)
[YAML](descriptors/yaml_prettier.md) | :white_circle: | [Repository](https://github.com/prettier/prettier){target=_blank} | -| [**protolint**](https://github.com/yoheimuta/protolint){target=_blank} | 0.38.2 | | [PROTOBUF](descriptors/protobuf_protolint.md) | :white_circle: | [Web Site](https://github.com/yoheimuta/protolint){target=_blank} | -| [**psalm**](https://github.com/vimeo/psalm){target=_blank} | Psalm.5.x-dev@ | [MIT](licenses/psalm.md) | [PHP](descriptors/php_psalm.md) | :white_circle: | [Repository](https://github.com/vimeo/psalm){target=_blank} | -| [**puppet-lint**](https://github.com/rodjek/puppet-lint){target=_blank} | 2.5.2 | [MIT](licenses/puppet-lint.md) | [PUPPET](descriptors/puppet_puppet_lint.md) | :white_circle: | [Repository](https://github.com/rodjek/puppet-lint){target=_blank} | -| [**pylint**](https://github.com/PyCQA/pylint){target=_blank} | 2.14.3 | [GPL-2.0](licenses/pylint.md) | [PYTHON](descriptors/python_pylint.md) | :white_circle: | [Repository](https://github.com/PyCQA/pylint){target=_blank} | -| [**raku**](https://github.com/rakudo/rakudo){target=_blank} | 2020.10 | [Artistic-2.0](licenses/raku.md) | [RAKU](descriptors/raku_raku.md) | :white_circle: | [Repository](https://github.com/rakudo/rakudo){target=_blank} | -| [**remark-lint**](https://github.com/remarkjs/remark-lint){target=_blank} | 14.0.2 | [MIT](licenses/remark-lint.md) | [MARKDOWN](descriptors/markdown_remark_lint.md) | :white_circle: | [Repository](https://github.com/remarkjs/remark-lint){target=_blank} | -| [**revive**](https://github.com/mgechev/revive){target=_blank} | N/A | [MIT](licenses/revive.md) | [GO](descriptors/go_revive.md) | :white_circle: | [Repository](https://github.com/mgechev/revive){target=_blank} | -| [**rst-lint**](https://github.com/twolfson/restructuredtext-lint){target=_blank} | 1.4.0 | | [RST](descriptors/rst_rst_lint.md) | :heart: | [MegaLinter reference](https://github.com/twolfson/restructuredtext-lint/wiki/Integration-in-other-tools#integration-in-other-tools){target=_blank} | -| [**rstcheck**](https://github.com/myint/rstcheck){target=_blank} | 6.0.0 | | [RST](descriptors/rst_rstcheck.md) | :hammer_and_wrench: | [Pull Request](https://github.com/myint/rstcheck/pull/73){target=_blank} | -| [**rstfmt**](https://github.com/dzhu/rstfmt){target=_blank} | 0.0.10 | | [RST](descriptors/rst_rstfmt.md) | :hammer_and_wrench: | [Pull Request](https://github.com/dzhu/rstfmt/pull/1){target=_blank} | -| [**rubocop**](https://github.com/rubocop-hq/rubocop){target=_blank} | 1.30.1 | [MIT](licenses/rubocop.md) | [RUBY](descriptors/ruby_rubocop.md) | :heart: | [MegaLinter reference](https://docs.rubocop.org/rubocop/integration_with_other_tools.html#mega-linter-integration){target=_blank} | -| [**scalafix**](https://github.com/scalacenter/scalafix){target=_blank} | 0.10.1 | [Other](licenses/scalafix.md) | [SCALA](descriptors/scala_scalafix.md) | :heart: | [MegaLinter reference](https://scalacenter.github.io/scalafix/docs/users/installation.html#plugins-for-other-build-tools){target=_blank} | -| [**scss-lint**](https://github.com/sds/scss-lint){target=_blank} | 0.59.0 | | [CSS](descriptors/css_scss_lint.md) | :white_circle: | [Web Site](https://github.com/sds/scss-lint){target=_blank} | -| [**secretlint**](https://github.com/secretlint/secretlint){target=_blank} | 4.1.0 | [MIT](licenses/secretlint.md) | [CREDENTIALS](descriptors/credentials_secretlint.md) | :heart: | [MegaLinter reference](https://github.com/secretlint/secretlint#mega-linter){target=_blank} | -| [**sfdx-scanner-apex**](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | 2.13.5 | [MIT](licenses/sfdx-scanner-apex.md) | [SALESFORCE](descriptors/salesforce_sfdx_scanner_apex.md) | :hammer_and_wrench: | [Pull Request](https://github.com/forcedotcom/sfdx-scanner/pull/307){target=_blank} | -| [**sfdx-scanner-aura**](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | 2.13.5 | [MIT](licenses/sfdx-scanner-aura.md) | [SALESFORCE](descriptors/salesforce_sfdx_scanner_aura.md) | :hammer_and_wrench: | [Pull Request](https://github.com/forcedotcom/sfdx-scanner/pull/307){target=_blank} | -| [**sfdx-scanner-lwc**](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | 2.13.5 | [MIT](licenses/sfdx-scanner-lwc.md) | [SALESFORCE](descriptors/salesforce_sfdx_scanner_lwc.md) | :hammer_and_wrench: | [Pull Request](https://github.com/forcedotcom/sfdx-scanner/pull/307){target=_blank} | -| [**shellcheck**](https://github.com/koalaman/shellcheck){target=_blank} | 0.8.0 | | [BASH](descriptors/bash_shellcheck.md) | | [Web Site](https://github.com/koalaman/shellcheck){target=_blank} | -| [**shfmt**](https://github.com/mvdan/sh){target=_blank} | 3.6.0 | | [BASH](descriptors/bash_shfmt.md) | :no_entry_sign: | [Web Site](https://github.com/mvdan/sh){target=_blank} | -| [**snakefmt**](https://github.com/snakemake/snakefmt){target=_blank} | 0.6.1 | | [SNAKEMAKE](descriptors/snakemake_snakefmt.md) | :white_circle: | [Web Site](https://github.com/snakemake/snakefmt){target=_blank} | -| [**snakemake**](https://github.com/snakemake/snakemake){target=_blank} | 7.8.3 | [MIT](licenses/snakemake.md) | [SNAKEMAKE](descriptors/snakemake_snakemake.md) | :white_circle: | [Repository](https://github.com/snakemake/snakemake){target=_blank} | -| [**spectral**](https://github.com/stoplightio/spectral){target=_blank} | 5.6.0 | [Apache-2.0](licenses/spectral.md) | [OPENAPI](descriptors/openapi_spectral.md) | :white_circle: | [Repository](https://github.com/stoplightio/spectral){target=_blank} | -| [**sql-lint**](https://github.com/joereynolds/sql-lint){target=_blank} | 1.0.0 | | [SQL](descriptors/sql_sql_lint.md) | :white_circle: | [Web Site](https://github.com/joereynolds/sql-lint){target=_blank} | -| [**sqlfluff**](https://github.com/sqlfluff/sqlfluff){target=_blank} | 1.0.0 | [MIT](licenses/sqlfluff.md) | [SQL](descriptors/sql_sqlfluff.md) | :white_circle: | [Repository](https://github.com/sqlfluff/sqlfluff){target=_blank} | -| [**standard**](https://github.com/standard/standard){target=_blank} | 15.0.1 | [MIT](licenses/standard.md) | [JAVASCRIPT](descriptors/javascript_standard.md)
[TYPESCRIPT](descriptors/typescript_standard.md) | :white_circle: | [Repository](https://github.com/standard/standard){target=_blank} | -| [**stylelint**](https://github.com/stylelint/stylelint){target=_blank} | 14.9.1 | [MIT](licenses/stylelint.md) | [CSS](descriptors/css_stylelint.md) | :heart: | [MegaLinter reference](https://stylelint.io/user-guide/integrations/other#analysis-platform-engines){target=_blank} | -| [**swiftlint**](https://github.com/realm/SwiftLint){target=_blank} | 0.46.5 | [MIT](licenses/swiftlint.md) | [SWIFT](descriptors/swift_swiftlint.md) | :white_circle: | [Repository](https://github.com/realm/SwiftLint){target=_blank} | -| [**tekton-lint**](https://github.com/IBM/tekton-lint){target=_blank} | 0.6.0 | | [TEKTON](descriptors/tekton_tekton_lint.md) | :white_circle: | [Web Site](https://github.com/IBM/tekton-lint){target=_blank} | -| [**terraform-fmt**](https://github.com/hashicorp/terraform){target=_blank} | 1.2.3 | [MPL-2.0](licenses/terraform-fmt.md) | [TERRAFORM](descriptors/terraform_terraform_fmt.md) | :white_circle: | [Repository](https://github.com/hashicorp/terraform){target=_blank} | -| [**terragrunt**](https://github.com/gruntwork-io/terragrunt){target=_blank} | 0.38.1 | [MIT](licenses/terragrunt.md) | [TERRAFORM](descriptors/terraform_terragrunt.md) | :white_circle: | [Repository](https://github.com/gruntwork-io/terragrunt){target=_blank} | -| [**terrascan**](https://github.com/accurics/terrascan){target=_blank} | 1.14.0 | [Apache-2.0](licenses/terrascan.md) | [TERRAFORM](descriptors/terraform_terrascan.md) | :white_circle: | [Repository](https://github.com/accurics/terrascan){target=_blank} | -| [**tflint**](https://github.com/terraform-linters/tflint){target=_blank} | 0.35.0 | | [TERRAFORM](descriptors/terraform_tflint.md) | :white_circle: | [Web Site](https://github.com/terraform-linters/tflint){target=_blank} | -| [**tsqllint**](https://github.com/tsqllint/tsqllint){target=_blank} | 1.14.5.0 | [MIT](licenses/tsqllint.md) | [SQL](descriptors/sql_tsqllint.md) | :white_circle: | [Repository](https://github.com/tsqllint/tsqllint){target=_blank} | -| [**v8r**](https://github.com/chris48s/v8r){target=_blank} | 0.6.1 | | [JSON](descriptors/json_v8r.md)
[YAML](descriptors/yaml_v8r.md) | :no_entry_sign: | [Web Site](https://github.com/chris48s/v8r){target=_blank} | -| [**xmllint**](http://xmlsoft.org/xmllint.html){target=_blank} | 20914 | | [XML](descriptors/xml_xmllint.md) | :white_circle: | [Web Site](http://xmlsoft.org/xmllint.html){target=_blank} | -| [**yamllint**](https://github.com/adrienverge/yamllint){target=_blank} | 1.26.3 | [GPL-3.0](licenses/yamllint.md) | [YAML](descriptors/yaml_yamllint.md) | :no_entry_sign: | [Repository](https://github.com/adrienverge/yamllint){target=_blank} | +| Linter | Version | License | Popularity | Descriptors | Ref | URL | +|:--------------------------------------------------------------------------------------------------------|:--------------:|:-------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------:|:---------------------------------------------------------------------------------------------------------------------------------------------------:| +| [**actionlint**](https://github.com/rhysd/actionlint){target=_blank} | 1.6.13 | [MIT](licenses/actionlint.md) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint){target=_blank} | [ACTION](descriptors/action_actionlint.md) | :white_circle: | [Repository](https://github.com/rhysd/actionlint){target=_blank} | +| [**ansible-lint**](https://github.com/ansible/ansible-lint){target=_blank} | 6.0.2 | [GPL-3.0](licenses/ansible-lint.md) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint){target=_blank} | [ANSIBLE](descriptors/ansible_ansible_lint.md) | :white_circle: | [Repository](https://github.com/ansible/ansible-lint){target=_blank} | +| [**arm-ttk**](https://github.com/Azure/arm-ttk){target=_blank} | N/A | | | [ARM](descriptors/arm_arm_ttk.md) | :white_circle: | [Web Site](https://github.com/Azure/arm-ttk){target=_blank} | +| [**bandit**](https://github.com/PyCQA/bandit){target=_blank} | 1.7.4 | [Apache-2.0](licenses/bandit.md) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/bandit?cacheSeconds=3600)](https://github.com/PyCQA/bandit){target=_blank} | [PYTHON](descriptors/python_bandit.md) | :white_circle: | [Repository](https://github.com/PyCQA/bandit){target=_blank} | +| [**bash-exec**](https://tiswww.case.edu/php/chet/bash/bashtop.html){target=_blank} | 5.1.16 | | | [BASH](descriptors/bash_bash_exec.md) | | [Web Site](https://tiswww.case.edu/php/chet/bash/bashtop.html){target=_blank} | +| [**black**](https://github.com/psf/black){target=_blank} | 22.3.0 | [MIT](licenses/black.md) | [![GitHub stars](https://img.shields.io/github/stars/psf/black?cacheSeconds=3600)](https://github.com/psf/black){target=_blank} | [PYTHON](descriptors/python_black.md) | :white_circle: | [Repository](https://github.com/psf/black){target=_blank} | +| [**cfn-lint**](https://github.com/aws-cloudformation/cfn-lint){target=_blank} | 0.61.1 | [MIT-0](licenses/cfn-lint.md) | [![GitHub stars](https://img.shields.io/github/stars/aws-cloudformation/cfn-lint?cacheSeconds=3600)](https://github.com/aws-cloudformation/cfn-lint){target=_blank} | [CLOUDFORMATION](descriptors/cloudformation_cfn_lint.md) | :white_circle: | [Repository](https://github.com/aws-cloudformation/cfn-lint){target=_blank} | +| [**checkov**](https://github.com/bridgecrewio/checkov){target=_blank} | 3.9 | [Apache-2.0](licenses/checkov.md) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov){target=_blank} | [TERRAFORM](descriptors/terraform_checkov.md) | :no_entry_sign: | [Repository](https://github.com/bridgecrewio/checkov){target=_blank} | +| [**checkstyle**](https://github.com/checkstyle/checkstyle){target=_blank} | 10.3 | [LGPL-2.1](licenses/checkstyle.md) | [![GitHub stars](https://img.shields.io/github/stars/checkstyle/checkstyle?cacheSeconds=3600)](https://github.com/checkstyle/checkstyle){target=_blank} | [JAVA](descriptors/java_checkstyle.md) | :heart: | [MegaLinter reference](https://checkstyle.sourceforge.io/index.html#Related_Tools_Active_Tools){target=_blank} | +| [**chktex**](https://www.nongnu.org/chktex){target=_blank} | 1.7.6 | | | [LATEX](descriptors/latex_chktex.md) | :white_circle: | [Web Site](https://www.nongnu.org/chktex){target=_blank} | +| [**clippy**](https://github.com/rust-lang/rust-clippy){target=_blank} | 0.1.61 | | [![GitHub stars](https://img.shields.io/github/stars/rust-lang/rust-clippy?cacheSeconds=3600)](https://github.com/rust-lang/rust-clippy){target=_blank} | [RUST](descriptors/rust_clippy.md) | :white_circle: | [Repository](https://github.com/rust-lang/rust-clippy){target=_blank} | +| [**clj-kondo**](https://github.com/borkdude/clj-kondo){target=_blank} | 2022.04.25 | | [![GitHub stars](https://img.shields.io/github/stars/borkdude/clj-kondo?cacheSeconds=3600)](https://github.com/borkdude/clj-kondo){target=_blank} | [CLOJURE](descriptors/clojure_clj_kondo.md) | :heart: | [MegaLinter reference](https://github.com/borkdude/clj-kondo/blob/master/doc/ci-integration.md#github){target=_blank} | +| [**coffeelint**](https://github.com/clutchski/coffeelint){target=_blank} | 5.2.9 | [Other](licenses/coffeelint.md) | [![GitHub stars](https://img.shields.io/github/stars/clutchski/coffeelint?cacheSeconds=3600)](https://github.com/clutchski/coffeelint){target=_blank} | [COFFEE](descriptors/coffee_coffeelint.md) | :white_circle: | [Repository](https://github.com/clutchski/coffeelint){target=_blank} | +| [**cpplint**](https://github.com/cpplint/cpplint){target=_blank} | 1.6.0 | | | [C](descriptors/c_cpplint.md)
[CPP](descriptors/cpp_cpplint.md) | :white_circle: | [Web Site](https://github.com/cpplint/cpplint){target=_blank} | +| [**cspell**](https://github.com/streetsidesoftware/cspell){target=_blank} | 6.1.2 | [MIT](licenses/cspell.md) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell){target=_blank} | [SPELL](descriptors/spell_cspell.md) | :heart: | [MegaLinter reference](https://github.com/streetsidesoftware/cspell/tree/master/packages/cspell#mega-linter){target=_blank} | +| [**dartanalyzer**](https://github.com/dart-lang/sdk){target=_blank} | N/A | [BSD-3-Clause](licenses/dartanalyzer.md) | [![GitHub stars](https://img.shields.io/github/stars/dart-lang/sdk?cacheSeconds=3600)](https://github.com/dart-lang/sdk){target=_blank} | [DART](descriptors/dart_dartanalyzer.md) | :no_entry_sign: | [Repository](https://github.com/dart-lang/sdk){target=_blank} | +| [**devskim**](https://github.com/microsoft/DevSkim){target=_blank} | N/A | [MIT](licenses/devskim.md) | [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim){target=_blank} | [REPOSITORY](descriptors/repository_devskim.md) | :white_circle: | [Repository](https://github.com/microsoft/DevSkim){target=_blank} | +| [**dotenv-linter**](https://github.com/dotenv-linter/dotenv-linter){target=_blank} | 3.2.0 | [MIT](licenses/dotenv-linter.md) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter){target=_blank} | [ENV](descriptors/env_dotenv_linter.md) | :heart: | [MegaLinter reference](https://dotenv-linter.github.io/#/integrations/mega_linter){target=_blank} | +| [**dotnet-format**](https://github.com/dotnet/format){target=_blank} | 000 | [MIT](licenses/dotnet-format.md) | [![GitHub stars](https://img.shields.io/github/stars/dotnet/format?cacheSeconds=3600)](https://github.com/dotnet/format){target=_blank} | [CSHARP](descriptors/csharp_dotnet_format.md)
[VBDOTNET](descriptors/vbdotnet_dotnet_format.md) | :white_circle: | [Repository](https://github.com/dotnet/format){target=_blank} | +| [**dustilock**](https://github.com/Checkmarx/dustilock){target=_blank} | N/A | [Apache-2.0](licenses/dustilock.md) | [![GitHub stars](https://img.shields.io/github/stars/Checkmarx/dustilock?cacheSeconds=3600)](https://github.com/Checkmarx/dustilock){target=_blank} | [REPOSITORY](descriptors/repository_dustilock.md) | :white_circle: | [Repository](https://github.com/Checkmarx/dustilock){target=_blank} | +| [**editorconfig-checker**](https://github.com/editorconfig-checker/editorconfig-checker){target=_blank} | 2.4.0 | [MIT](licenses/editorconfig-checker.md) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker){target=_blank} | [EDITORCONFIG](descriptors/editorconfig_editorconfig_checker.md) | :heart: | [MegaLinter reference](https://github.com/editorconfig-checker/editorconfig-checker#mega-linter){target=_blank} | +| [**eslint**](https://github.com/eslint/eslint){target=_blank} | 8.18.0 | [MIT](licenses/eslint.md) | [![GitHub stars](https://img.shields.io/github/stars/eslint/eslint?cacheSeconds=3600)](https://github.com/eslint/eslint){target=_blank} | [JAVASCRIPT](descriptors/javascript_eslint.md)
[JSX](descriptors/jsx_eslint.md)
[TSX](descriptors/tsx_eslint.md)
[TYPESCRIPT](descriptors/typescript_eslint.md) | :heart: | [MegaLinter reference](https://eslint.org/docs/user-guide/integrations#source-control){target=_blank} | +| [**eslint-plugin-jsonc**](https://github.com/ota-meshi/eslint-plugin-jsonc){target=_blank} | 2.3.0 | [MIT](licenses/eslint-plugin-jsonc.md) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc){target=_blank} | [JSON](descriptors/json_eslint_plugin_jsonc.md) | :heart: | [MegaLinter reference](https://eslint.org/docs/user-guide/integrations#source-control){target=_blank} | +| [**flake8**](https://github.com/PyCQA/flake8){target=_blank} | 4.0.1 | [MIT](licenses/flake8.md) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/flake8?cacheSeconds=3600)](https://github.com/PyCQA/flake8){target=_blank} | [PYTHON](descriptors/python_flake8.md) | :white_circle: | [Repository](https://github.com/PyCQA/flake8){target=_blank} | +| [**gherkin-lint**](https://github.com/vsiakka/gherkin-lint){target=_blank} | N/A | [ISC](licenses/gherkin-lint.md) | [![GitHub stars](https://img.shields.io/github/stars/vsiakka/gherkin-lint?cacheSeconds=3600)](https://github.com/vsiakka/gherkin-lint){target=_blank} | [GHERKIN](descriptors/gherkin_gherkin_lint.md) | :white_circle: | [Repository](https://github.com/vsiakka/gherkin-lint){target=_blank} | +| [**git_diff**](https://github.com/git/git){target=_blank} | 2.30.3 | [LGPL-2.1](licenses/git_diff.md) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git){target=_blank} | [REPOSITORY](descriptors/repository_git_diff.md) | | [Repository](https://github.com/git/git){target=_blank} | +| [**gitleaks**](https://github.com/zricethezav/gitleaks){target=_blank} | N/A | [MIT](licenses/gitleaks.md) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks){target=_blank} | [REPOSITORY](descriptors/repository_gitleaks.md) | :white_circle: | [Repository](https://github.com/zricethezav/gitleaks){target=_blank} | +| [**golangci-lint**](https://github.com/golangci/golangci-lint){target=_blank} | 1.46.2 | [GPL-3.0](licenses/golangci-lint.md) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint){target=_blank} | [GO](descriptors/go_golangci_lint.md) | :white_circle: | [Repository](https://github.com/golangci/golangci-lint){target=_blank} | +| [**goodcheck**](https://github.com/sider/goodcheck){target=_blank} | N/A | [MIT](licenses/goodcheck.md) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck){target=_blank} | [REPOSITORY](descriptors/repository_goodcheck.md) | :white_circle: | [Repository](https://github.com/sider/goodcheck){target=_blank} | +| [**graphql-schema-linter**](https://github.com/cjoudrey/graphql-schema-linter){target=_blank} | 3.0.1 | [MIT](licenses/graphql-schema-linter.md) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter){target=_blank} | [GRAPHQL](descriptors/graphql_graphql_schema_linter.md) | :hammer_and_wrench: | [Pull Request](https://github.com/cjoudrey/graphql-schema-linter/pull/272){target=_blank} | +| [**hadolint**](https://github.com/hadolint/hadolint){target=_blank} | 2.10.0 | [GPL-3.0](licenses/hadolint.md) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint){target=_blank} | [DOCKERFILE](descriptors/dockerfile_hadolint.md) | :heart: | [MegaLinter reference](https://github.com/hadolint/hadolint/blob/master/docs/INTEGRATION.md#mega-linter){target=_blank} | +| [**htmlhint**](https://github.com/htmlhint/HTMLHint){target=_blank} | 1.1.4 | [MIT](licenses/htmlhint.md) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint){target=_blank} | [HTML](descriptors/html_htmlhint.md) | :heart: | [MegaLinter reference](https://htmlhint.com/docs/user-guide/integrations/task-runner){target=_blank} | +| [**isort**](https://github.com/PyCQA/isort){target=_blank} | 5.10.1 | [MIT](licenses/isort.md) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/isort?cacheSeconds=3600)](https://github.com/PyCQA/isort){target=_blank} | [PYTHON](descriptors/python_isort.md) | :white_circle: | [Repository](https://github.com/PyCQA/isort){target=_blank} | +| [**jscpd**](https://github.com/kucherenko/jscpd){target=_blank} | 3.3.26 | [MIT](licenses/jscpd.md) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd){target=_blank} | [COPYPASTE](descriptors/copypaste_jscpd.md) | :heart: | [MegaLinter reference](https://github.com/kucherenko/jscpd#who-uses-jscpd){target=_blank} | +| [**jsonlint**](https://github.com/zaach/jsonlint){target=_blank} | 1.6.3 | | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint){target=_blank} | [JSON](descriptors/json_jsonlint.md) | :hammer_and_wrench: | [Pull Request](https://github.com/zaach/jsonlint/pull/127){target=_blank} | +| [**kics**](https://github.com/checkmarx/kics){target=_blank} | 1.5.11 | [Apache-2.0](licenses/kics.md) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics){target=_blank} | [TERRAFORM](descriptors/terraform_kics.md) | :heart: | [MegaLinter reference](https://docs.kics.io/latest/integrations/){target=_blank} | +| [**ktlint**](https://github.com/pinterest/ktlint){target=_blank} | 0.46.1 | [MIT](licenses/ktlint.md) | [![GitHub stars](https://img.shields.io/github/stars/pinterest/ktlint?cacheSeconds=3600)](https://github.com/pinterest/ktlint){target=_blank} | [KOTLIN](descriptors/kotlin_ktlint.md) | :heart: | [MegaLinter reference](https://github.com/pinterest/ktlint#-with-continuous-integration){target=_blank} | +| [**kubeconform**](https://github.com/yannh/kubeconform){target=_blank} | 0.4.12 | [Other](licenses/kubeconform.md) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform){target=_blank} | [KUBERNETES](descriptors/kubernetes_kubeconform.md) | :white_circle: | [Repository](https://github.com/yannh/kubeconform){target=_blank} | +| [**kubeval**](https://github.com/instrumenta/kubeval){target=_blank} | 0.16.1 | [Apache-2.0](licenses/kubeval.md) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval){target=_blank} | [KUBERNETES](descriptors/kubernetes_kubeval.md) | :white_circle: | [Repository](https://github.com/instrumenta/kubeval){target=_blank} | +| [**lintr**](https://lintr.r-lib.org/){target=_blank} | N/A | | | [R](descriptors/r_lintr.md) | :white_circle: | [Web Site](https://lintr.r-lib.org/){target=_blank} | +| [**luacheck**](https://github.com/luarocks/luacheck){target=_blank} | 0.26.1 | [MIT](licenses/luacheck.md) | [![GitHub stars](https://img.shields.io/github/stars/luarocks/luacheck?cacheSeconds=3600)](https://github.com/luarocks/luacheck){target=_blank} | [LUA](descriptors/lua_luacheck.md) | :no_entry_sign: | [Repository](https://github.com/luarocks/luacheck){target=_blank} | +| [**markdown-link-check**](https://github.com/tcort/markdown-link-check){target=_blank} | 3.10.2 | | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check){target=_blank} | [MARKDOWN](descriptors/markdown_markdown_link_check.md) | :heart: | [MegaLinter reference](https://github.com/tcort/markdown-link-check#run-in-other-tools){target=_blank} | +| [**markdown-table-formatter**](https://github.com/nvuillam/markdown-table-formatter){target=_blank} | 1.3.0 | [MIT](licenses/markdown-table-formatter.md) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter){target=_blank} | [MARKDOWN](descriptors/markdown_markdown_table_formatter.md) | :white_circle: | [Repository](https://github.com/nvuillam/markdown-table-formatter){target=_blank} | +| [**markdownlint**](https://github.com/DavidAnson/markdownlint){target=_blank} | 0.31.1 | | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint){target=_blank} | [MARKDOWN](descriptors/markdown_markdownlint.md) | :white_circle: | [Repository](https://github.com/DavidAnson/markdownlint){target=_blank} | +| [**misspell**](https://github.com/client9/misspell){target=_blank} | 0.3.4 | | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell){target=_blank} | [SPELL](descriptors/spell_misspell.md) | :white_circle: | [Repository](https://github.com/client9/misspell){target=_blank} | +| [**mypy**](https://github.com/python/mypy){target=_blank} | 0.961 | [MIT](licenses/mypy.md) | [![GitHub stars](https://img.shields.io/github/stars/python/mypy?cacheSeconds=3600)](https://github.com/python/mypy){target=_blank} | [PYTHON](descriptors/python_mypy.md) | | [Repository](https://github.com/python/mypy){target=_blank} | +| [**npm-groovy-lint**](https://github.com/nvuillam/npm-groovy-lint){target=_blank} | 9.5.0 | [GPL-3.0](licenses/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){target=_blank} | [GROOVY](descriptors/groovy_npm_groovy_lint.md) | :heart: | [MegaLinter reference](https://nvuillam.github.io/npm-groovy-lint/#mega-linter){target=_blank} | +| [**perlcritic**](https://github.com/Perl-Critic/Perl-Critic){target=_blank} | 1.140 | [Other](licenses/perlcritic.md) | [![GitHub stars](https://img.shields.io/github/stars/Perl-Critic/Perl-Critic?cacheSeconds=3600)](https://github.com/Perl-Critic/Perl-Critic){target=_blank} | [PERL](descriptors/perl_perlcritic.md) | :white_circle: | [Repository](https://github.com/Perl-Critic/Perl-Critic){target=_blank} | +| [**phpcs**](https://github.com/squizlabs/PHP_CodeSniffer){target=_blank} | 3.7.1 | | [![GitHub stars](https://img.shields.io/github/stars/squizlabs/PHP_CodeSniffer?cacheSeconds=3600)](https://github.com/squizlabs/PHP_CodeSniffer){target=_blank} | [PHP](descriptors/php_phpcs.md) | :white_circle: | [Repository](https://github.com/squizlabs/PHP_CodeSniffer){target=_blank} | +| [**phplint**](https://github.com/overtrue/phplint){target=_blank} | 3.0 | | | [PHP](descriptors/php_phplint.md) | :white_circle: | [Web Site](https://github.com/overtrue/phplint){target=_blank} | +| [**phpstan**](https://github.com/phpstan/phpstan){target=_blank} | 1.7.15 | [MIT](licenses/phpstan.md) | [![GitHub stars](https://img.shields.io/github/stars/phpstan/phpstan?cacheSeconds=3600)](https://github.com/phpstan/phpstan){target=_blank} | [PHP](descriptors/php_phpstan.md) | :white_circle: | [Repository](https://github.com/phpstan/phpstan){target=_blank} | +| [**powershell**](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | 7.2.5 | | [![GitHub stars](https://img.shields.io/github/stars/PowerShell/PSScriptAnalyzer?cacheSeconds=3600)](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | [POWERSHELL](descriptors/powershell_powershell.md) | :white_circle: | [Repository](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} | +| [**prettier**](https://github.com/prettier/prettier){target=_blank} | 2.7.1 | [MIT](licenses/prettier.md) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier){target=_blank} | [JAVASCRIPT](descriptors/javascript_prettier.md)
[JSON](descriptors/json_prettier.md)
[TYPESCRIPT](descriptors/typescript_prettier.md)
[YAML](descriptors/yaml_prettier.md) | :white_circle: | [Repository](https://github.com/prettier/prettier){target=_blank} | +| [**protolint**](https://github.com/yoheimuta/protolint){target=_blank} | 0.38.2 | | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint){target=_blank} | [PROTOBUF](descriptors/protobuf_protolint.md) | :white_circle: | [Repository](https://github.com/yoheimuta/protolint){target=_blank} | +| [**psalm**](https://github.com/vimeo/psalm){target=_blank} | Psalm.5.x-dev@ | [MIT](licenses/psalm.md) | [![GitHub stars](https://img.shields.io/github/stars/vimeo/psalm?cacheSeconds=3600)](https://github.com/vimeo/psalm){target=_blank} | [PHP](descriptors/php_psalm.md) | :white_circle: | [Repository](https://github.com/vimeo/psalm){target=_blank} | +| [**puppet-lint**](https://github.com/rodjek/puppet-lint){target=_blank} | 2.5.2 | [MIT](licenses/puppet-lint.md) | [![GitHub stars](https://img.shields.io/github/stars/rodjek/puppet-lint?cacheSeconds=3600)](https://github.com/rodjek/puppet-lint){target=_blank} | [PUPPET](descriptors/puppet_puppet_lint.md) | :white_circle: | [Repository](https://github.com/rodjek/puppet-lint){target=_blank} | +| [**pylint**](https://github.com/PyCQA/pylint){target=_blank} | 2.14.3 | [GPL-2.0](licenses/pylint.md) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/pylint?cacheSeconds=3600)](https://github.com/PyCQA/pylint){target=_blank} | [PYTHON](descriptors/python_pylint.md) | :white_circle: | [Repository](https://github.com/PyCQA/pylint){target=_blank} | +| [**raku**](https://github.com/rakudo/rakudo){target=_blank} | 2020.10 | [Artistic-2.0](licenses/raku.md) | [![GitHub stars](https://img.shields.io/github/stars/rakudo/rakudo?cacheSeconds=3600)](https://github.com/rakudo/rakudo){target=_blank} | [RAKU](descriptors/raku_raku.md) | :white_circle: | [Repository](https://github.com/rakudo/rakudo){target=_blank} | +| [**remark-lint**](https://github.com/remarkjs/remark-lint){target=_blank} | 14.0.2 | [MIT](licenses/remark-lint.md) | [![GitHub stars](https://img.shields.io/github/stars/remarkjs/remark-lint?cacheSeconds=3600)](https://github.com/remarkjs/remark-lint){target=_blank} | [MARKDOWN](descriptors/markdown_remark_lint.md) | :white_circle: | [Repository](https://github.com/remarkjs/remark-lint){target=_blank} | +| [**revive**](https://github.com/mgechev/revive){target=_blank} | N/A | [MIT](licenses/revive.md) | [![GitHub stars](https://img.shields.io/github/stars/mgechev/revive?cacheSeconds=3600)](https://github.com/mgechev/revive){target=_blank} | [GO](descriptors/go_revive.md) | :white_circle: | [Repository](https://github.com/mgechev/revive){target=_blank} | +| [**rst-lint**](https://github.com/twolfson/restructuredtext-lint){target=_blank} | 1.4.0 | | [![GitHub stars](https://img.shields.io/github/stars/twolfson/restructuredtext-lint?cacheSeconds=3600)](https://github.com/twolfson/restructuredtext-lint){target=_blank} | [RST](descriptors/rst_rst_lint.md) | :heart: | [MegaLinter reference](https://github.com/twolfson/restructuredtext-lint/wiki/Integration-in-other-tools#integration-in-other-tools){target=_blank} | +| [**rstcheck**](https://github.com/myint/rstcheck){target=_blank} | 6.0.0 | | [![GitHub stars](https://img.shields.io/github/stars/myint/rstcheck?cacheSeconds=3600)](https://github.com/myint/rstcheck){target=_blank} | [RST](descriptors/rst_rstcheck.md) | :hammer_and_wrench: | [Pull Request](https://github.com/myint/rstcheck/pull/73){target=_blank} | +| [**rubocop**](https://github.com/rubocop-hq/rubocop){target=_blank} | 1.30.1 | [MIT](licenses/rubocop.md) | [![GitHub stars](https://img.shields.io/github/stars/rubocop-hq/rubocop?cacheSeconds=3600)](https://github.com/rubocop-hq/rubocop){target=_blank} | [RUBY](descriptors/ruby_rubocop.md) | :heart: | [MegaLinter reference](https://docs.rubocop.org/rubocop/integration_with_other_tools.html#mega-linter-integration){target=_blank} | +| [**scalafix**](https://github.com/scalacenter/scalafix){target=_blank} | 0.10.1 | [Other](licenses/scalafix.md) | [![GitHub stars](https://img.shields.io/github/stars/scalacenter/scalafix?cacheSeconds=3600)](https://github.com/scalacenter/scalafix){target=_blank} | [SCALA](descriptors/scala_scalafix.md) | :heart: | [MegaLinter reference](https://scalacenter.github.io/scalafix/docs/users/installation.html#plugins-for-other-build-tools){target=_blank} | +| [**scss-lint**](https://github.com/sds/scss-lint){target=_blank} | 0.59.0 | | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint){target=_blank} | [CSS](descriptors/css_scss_lint.md) | :white_circle: | [Repository](https://github.com/sds/scss-lint){target=_blank} | +| [**secretlint**](https://github.com/secretlint/secretlint){target=_blank} | 4.1.0 | [MIT](licenses/secretlint.md) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint){target=_blank} | [REPOSITORY](descriptors/repository_secretlint.md) | :heart: | [MegaLinter reference](https://github.com/secretlint/secretlint#mega-linter){target=_blank} | +| [**semgrep**](https://github.com/returntocorp/semgrep){target=_blank} | N/A | | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep){target=_blank} | [REPOSITORY](descriptors/repository_semgrep.md) | :white_circle: | [Repository](https://github.com/returntocorp/semgrep){target=_blank} | +| [**sfdx-scanner-apex**](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | 2.13.5 | [MIT](licenses/sfdx-scanner-apex.md) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | [SALESFORCE](descriptors/salesforce_sfdx_scanner_apex.md) | :hammer_and_wrench: | [Pull Request](https://github.com/forcedotcom/sfdx-scanner/pull/307){target=_blank} | +| [**sfdx-scanner-aura**](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | 2.13.5 | [MIT](licenses/sfdx-scanner-aura.md) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | [SALESFORCE](descriptors/salesforce_sfdx_scanner_aura.md) | :hammer_and_wrench: | [Pull Request](https://github.com/forcedotcom/sfdx-scanner/pull/307){target=_blank} | +| [**sfdx-scanner-lwc**](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | 2.13.5 | [MIT](licenses/sfdx-scanner-lwc.md) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner){target=_blank} | [SALESFORCE](descriptors/salesforce_sfdx_scanner_lwc.md) | :hammer_and_wrench: | [Pull Request](https://github.com/forcedotcom/sfdx-scanner/pull/307){target=_blank} | +| [**shellcheck**](https://github.com/koalaman/shellcheck){target=_blank} | 0.8.0 | | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck){target=_blank} | [BASH](descriptors/bash_shellcheck.md) | | [Repository](https://github.com/koalaman/shellcheck){target=_blank} | +| [**shfmt**](https://github.com/mvdan/sh){target=_blank} | 3.6.0 | | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh){target=_blank} | [BASH](descriptors/bash_shfmt.md) | :no_entry_sign: | [Repository](https://github.com/mvdan/sh){target=_blank} | +| [**snakefmt**](https://github.com/snakemake/snakefmt){target=_blank} | 0.6.1 | | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt){target=_blank} | [SNAKEMAKE](descriptors/snakemake_snakefmt.md) | :white_circle: | [Repository](https://github.com/snakemake/snakefmt){target=_blank} | +| [**snakemake**](https://github.com/snakemake/snakemake){target=_blank} | 7.8.3 | [MIT](licenses/snakemake.md) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake){target=_blank} | [SNAKEMAKE](descriptors/snakemake_snakemake.md) | :white_circle: | [Repository](https://github.com/snakemake/snakemake){target=_blank} | +| [**spectral**](https://github.com/stoplightio/spectral){target=_blank} | 5.6.0 | [Apache-2.0](licenses/spectral.md) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral){target=_blank} | [OPENAPI](descriptors/openapi_spectral.md) | :white_circle: | [Repository](https://github.com/stoplightio/spectral){target=_blank} | +| [**sql-lint**](https://github.com/joereynolds/sql-lint){target=_blank} | 1.0.0 | | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint){target=_blank} | [SQL](descriptors/sql_sql_lint.md) | :white_circle: | [Repository](https://github.com/joereynolds/sql-lint){target=_blank} | +| [**sqlfluff**](https://github.com/sqlfluff/sqlfluff){target=_blank} | 1.0.0 | [MIT](licenses/sqlfluff.md) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff){target=_blank} | [SQL](descriptors/sql_sqlfluff.md) | :white_circle: | [Repository](https://github.com/sqlfluff/sqlfluff){target=_blank} | +| [**standard**](https://github.com/standard/standard){target=_blank} | 15.0.1 | [MIT](licenses/standard.md) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard){target=_blank} | [JAVASCRIPT](descriptors/javascript_standard.md)
[TYPESCRIPT](descriptors/typescript_standard.md) | :white_circle: | [Repository](https://github.com/standard/standard){target=_blank} | +| [**stylelint**](https://github.com/stylelint/stylelint){target=_blank} | 14.9.1 | [MIT](licenses/stylelint.md) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint){target=_blank} | [CSS](descriptors/css_stylelint.md) | :heart: | [MegaLinter reference](https://stylelint.io/user-guide/integrations/other#analysis-platform-engines){target=_blank} | +| [**swiftlint**](https://github.com/realm/SwiftLint){target=_blank} | 0.46.5 | [MIT](licenses/swiftlint.md) | [![GitHub stars](https://img.shields.io/github/stars/realm/SwiftLint?cacheSeconds=3600)](https://github.com/realm/SwiftLint){target=_blank} | [SWIFT](descriptors/swift_swiftlint.md) | :white_circle: | [Repository](https://github.com/realm/SwiftLint){target=_blank} | +| [**syft**](https://github.com/anchore/syft){target=_blank} | N/A | | [![GitHub stars](https://img.shields.io/github/stars/anchore/syft?cacheSeconds=3600)](https://github.com/anchore/syft){target=_blank} | [REPOSITORY](descriptors/repository_syft.md) | :white_circle: | [Repository](https://github.com/anchore/syft){target=_blank} | +| [**tekton-lint**](https://github.com/IBM/tekton-lint){target=_blank} | 0.6.0 | | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint){target=_blank} | [TEKTON](descriptors/tekton_tekton_lint.md) | :white_circle: | [Repository](https://github.com/IBM/tekton-lint){target=_blank} | +| [**terraform-fmt**](https://github.com/hashicorp/terraform){target=_blank} | 1.2.3 | [MPL-2.0](licenses/terraform-fmt.md) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform){target=_blank} | [TERRAFORM](descriptors/terraform_terraform_fmt.md) | :white_circle: | [Repository](https://github.com/hashicorp/terraform){target=_blank} | +| [**terragrunt**](https://github.com/gruntwork-io/terragrunt){target=_blank} | 0.38.1 | [MIT](licenses/terragrunt.md) | [![GitHub stars](https://img.shields.io/github/stars/gruntwork-io/terragrunt?cacheSeconds=3600)](https://github.com/gruntwork-io/terragrunt){target=_blank} | [TERRAFORM](descriptors/terraform_terragrunt.md) | :white_circle: | [Repository](https://github.com/gruntwork-io/terragrunt){target=_blank} | +| [**terrascan**](https://github.com/accurics/terrascan){target=_blank} | 1.14.0 | [Apache-2.0](licenses/terrascan.md) | [![GitHub stars](https://img.shields.io/github/stars/accurics/terrascan?cacheSeconds=3600)](https://github.com/accurics/terrascan){target=_blank} | [TERRAFORM](descriptors/terraform_terrascan.md) | :white_circle: | [Repository](https://github.com/accurics/terrascan){target=_blank} | +| [**tflint**](https://github.com/terraform-linters/tflint){target=_blank} | 0.35.0 | | [![GitHub stars](https://img.shields.io/github/stars/terraform-linters/tflint?cacheSeconds=3600)](https://github.com/terraform-linters/tflint){target=_blank} | [TERRAFORM](descriptors/terraform_tflint.md) | :white_circle: | [Repository](https://github.com/terraform-linters/tflint){target=_blank} | +| [**trivy**](https://github.com/aquasecurity/trivy){target=_blank} | N/A | [Apache-2.0](licenses/trivy.md) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy){target=_blank} | [REPOSITORY](descriptors/repository_trivy.md) | :white_circle: | [Repository](https://github.com/aquasecurity/trivy){target=_blank} | +| [**tsqllint**](https://github.com/tsqllint/tsqllint){target=_blank} | 1.14.5.0 | [MIT](licenses/tsqllint.md) | [![GitHub stars](https://img.shields.io/github/stars/tsqllint/tsqllint?cacheSeconds=3600)](https://github.com/tsqllint/tsqllint){target=_blank} | [SQL](descriptors/sql_tsqllint.md) | :white_circle: | [Repository](https://github.com/tsqllint/tsqllint){target=_blank} | +| [**v8r**](https://github.com/chris48s/v8r){target=_blank} | 0.6.1 | | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r){target=_blank} | [JSON](descriptors/json_v8r.md)
[YAML](descriptors/yaml_v8r.md) | :no_entry_sign: | [Repository](https://github.com/chris48s/v8r){target=_blank} | +| [**xmllint**](http://xmlsoft.org/xmllint.html){target=_blank} | 20914 | | | [XML](descriptors/xml_xmllint.md) | :white_circle: | [Web Site](http://xmlsoft.org/xmllint.html){target=_blank} | +| [**yamllint**](https://github.com/adrienverge/yamllint){target=_blank} | 1.26.3 | [GPL-3.0](licenses/yamllint.md) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint){target=_blank} | [YAML](descriptors/yaml_yamllint.md) | :no_entry_sign: | [Repository](https://github.com/adrienverge/yamllint){target=_blank} | diff --git a/docs/all_users.md b/docs/all_users.md index f5250f8089f..2a039399423 100644 --- a/docs/all_users.md +++ b/docs/all_users.md @@ -1,30 +1,40 @@ # They use MegaLinter +Here is a non-exhaustive list of open-source projects that use Megalinter + +According to posted issues, there are many more private and self-hosted repos using MegaLinter but as we don't track them I can't provide a list :) + [![nektos/act - GitHub](https://gh-card.dev/repos/nektos/act.svg?fullname=)](https://github.com/nektos/act){target=_blank} [![stepancheg/rust-protobuf - GitHub](https://gh-card.dev/repos/stepancheg/rust-protobuf.svg?fullname=)](https://github.com/stepancheg/rust-protobuf){target=_blank} +[![IlanCosman/tide - GitHub](https://gh-card.dev/repos/IlanCosman/tide.svg?fullname=)](https://github.com/IlanCosman/tide){target=_blank} +[![dorssel/usbipd-win - GitHub](https://gh-card.dev/repos/dorssel/usbipd-win.svg?fullname=)](https://github.com/dorssel/usbipd-win){target=_blank} [![flosse/sloc - GitHub](https://gh-card.dev/repos/flosse/sloc.svg?fullname=)](https://github.com/flosse/sloc){target=_blank} -[![megalinter/megalinter - GitHub](https://gh-card.dev/repos/megalinter/megalinter.svg?fullname=)](https://github.com/megalinter/megalinter){target=_blank} +[![oxsecurity/megalinter - GitHub](https://gh-card.dev/repos/oxsecurity/megalinter.svg?fullname=)](https://github.com/oxsecurity/megalinter){target=_blank} [![onedr0p/home-ops - GitHub](https://gh-card.dev/repos/onedr0p/home-ops.svg?fullname=)](https://github.com/onedr0p/home-ops){target=_blank} [![unixorn/zsh-quickstart-kit - GitHub](https://gh-card.dev/repos/unixorn/zsh-quickstart-kit.svg?fullname=)](https://github.com/unixorn/zsh-quickstart-kit){target=_blank} [![secureCodeBox/secureCodeBox - GitHub](https://gh-card.dev/repos/secureCodeBox/secureCodeBox.svg?fullname=)](https://github.com/secureCodeBox/secureCodeBox){target=_blank} [![practicalli/clojure-deps-edn - GitHub](https://gh-card.dev/repos/practicalli/clojure-deps-edn.svg?fullname=)](https://github.com/practicalli/clojure-deps-edn){target=_blank} [![KelvinTegelaar/CIPP - GitHub](https://gh-card.dev/repos/KelvinTegelaar/CIPP.svg?fullname=)](https://github.com/KelvinTegelaar/CIPP){target=_blank} [![llaville/php-compatinfo - GitHub](https://gh-card.dev/repos/llaville/php-compatinfo.svg?fullname=)](https://github.com/llaville/php-compatinfo){target=_blank} +[![ruzickap/packer-templates - GitHub](https://gh-card.dev/repos/ruzickap/packer-templates.svg?fullname=)](https://github.com/ruzickap/packer-templates){target=_blank} [![bjw-s/home-ops - GitHub](https://gh-card.dev/repos/bjw-s/home-ops.svg?fullname=)](https://github.com/bjw-s/home-ops){target=_blank} [![unixorn/tumult.plugin.zsh - GitHub](https://gh-card.dev/repos/unixorn/tumult.plugin.zsh.svg?fullname=)](https://github.com/unixorn/tumult.plugin.zsh){target=_blank} [![newrelic/newrelic-python-agent - GitHub](https://gh-card.dev/repos/newrelic/newrelic-python-agent.svg?fullname=)](https://github.com/newrelic/newrelic-python-agent){target=_blank} [![nvuillam/npm-groovy-lint - GitHub](https://gh-card.dev/repos/nvuillam/npm-groovy-lint.svg?fullname=)](https://github.com/nvuillam/npm-groovy-lint){target=_blank} [![practicalli/spacemacs - GitHub](https://gh-card.dev/repos/practicalli/spacemacs.svg?fullname=)](https://github.com/practicalli/spacemacs){target=_blank} [![practicalli/spacemacs - GitHub](https://gh-card.dev/repos/practicalli/spacemacs.svg?fullname=)](https://github.com/practicalli/spacemacs){target=_blank} -[![oasisprotocol/oasis-wallet-web - GitHub](https://gh-card.dev/repos/oasisprotocol/oasis-wallet-web.svg?fullname=)](https://github.com/oasisprotocol/oasis-wallet-web){target=_blank} +[![cbg-ethz/V-pipe - GitHub](https://gh-card.dev/repos/cbg-ethz/V-pipe.svg?fullname=)](https://github.com/cbg-ethz/V-pipe){target=_blank} [![joeygoksu/prime-nestjs - GitHub](https://gh-card.dev/repos/joeygoksu/prime-nestjs.svg?fullname=)](https://github.com/joeygoksu/prime-nestjs){target=_blank} +[![oasisprotocol/oasis-wallet-web - GitHub](https://gh-card.dev/repos/oasisprotocol/oasis-wallet-web.svg?fullname=)](https://github.com/oasisprotocol/oasis-wallet-web){target=_blank} [![rasa/scoops - GitHub](https://gh-card.dev/repos/rasa/scoops.svg?fullname=)](https://github.com/rasa/scoops){target=_blank} -[![philips-software/embeddedinfralib - GitHub](https://gh-card.dev/repos/philips-software/embeddedinfralib.svg?fullname=)](https://github.com/philips-software/embeddedinfralib){target=_blank} +[![Azure/ARO-RP - GitHub](https://gh-card.dev/repos/Azure/ARO-RP.svg?fullname=)](https://github.com/Azure/ARO-RP){target=_blank} [![unixorn/lima-xbar-plugin - GitHub](https://gh-card.dev/repos/unixorn/lima-xbar-plugin.svg?fullname=)](https://github.com/unixorn/lima-xbar-plugin){target=_blank} +[![philips-software/embeddedinfralib - GitHub](https://gh-card.dev/repos/philips-software/embeddedinfralib.svg?fullname=)](https://github.com/philips-software/embeddedinfralib){target=_blank} [![llaville/umlwriter - GitHub](https://gh-card.dev/repos/llaville/umlwriter.svg?fullname=)](https://github.com/llaville/umlwriter){target=_blank} [![nvuillam/sfdx-essentials - GitHub](https://gh-card.dev/repos/nvuillam/sfdx-essentials.svg?fullname=)](https://github.com/nvuillam/sfdx-essentials){target=_blank} [![practicalli/clojure - GitHub](https://gh-card.dev/repos/practicalli/clojure.svg?fullname=)](https://github.com/practicalli/clojure){target=_blank} [![catthehacker/docker_images - GitHub](https://gh-card.dev/repos/catthehacker/docker_images.svg?fullname=)](https://github.com/catthehacker/docker_images){target=_blank} +[![meichthys/foss_photo_libraries - GitHub](https://gh-card.dev/repos/meichthys/foss_photo_libraries.svg?fullname=)](https://github.com/meichthys/foss_photo_libraries){target=_blank} [![AlbanAndrieu/ansible-windows - GitHub](https://gh-card.dev/repos/AlbanAndrieu/ansible-windows.svg?fullname=)](https://github.com/AlbanAndrieu/ansible-windows){target=_blank} [![quackduck/secret - GitHub](https://gh-card.dev/repos/quackduck/secret.svg?fullname=)](https://github.com/quackduck/secret){target=_blank} [![MythicDrops/MythicDrops - GitHub](https://gh-card.dev/repos/MythicDrops/MythicDrops.svg?fullname=)](https://github.com/MythicDrops/MythicDrops){target=_blank} @@ -42,10 +52,10 @@ [![llaville/php-compatinfo-db - GitHub](https://gh-card.dev/repos/llaville/php-compatinfo-db.svg?fullname=)](https://github.com/llaville/php-compatinfo-db){target=_blank} [![wareismymind/peer - GitHub](https://gh-card.dev/repos/wareismymind/peer.svg?fullname=)](https://github.com/wareismymind/peer){target=_blank} [![Amplitude-Developer-Docs/amplitude-dev-center - GitHub](https://gh-card.dev/repos/Amplitude-Developer-Docs/amplitude-dev-center.svg?fullname=)](https://github.com/Amplitude-Developer-Docs/amplitude-dev-center){target=_blank} +[![AErmie/DevSecOps - GitHub](https://gh-card.dev/repos/AErmie/DevSecOps.svg?fullname=)](https://github.com/AErmie/DevSecOps){target=_blank} [![ScribeMD/rootless-docker - GitHub](https://gh-card.dev/repos/ScribeMD/rootless-docker.svg?fullname=)](https://github.com/ScribeMD/rootless-docker){target=_blank} [![ScribeMD/slack-templates - GitHub](https://gh-card.dev/repos/ScribeMD/slack-templates.svg?fullname=)](https://github.com/ScribeMD/slack-templates){target=_blank} [![AliceO2Group/O2Physics - GitHub](https://gh-card.dev/repos/AliceO2Group/O2Physics.svg?fullname=)](https://github.com/AliceO2Group/O2Physics){target=_blank} -[![AErmie/DevSecOps - GitHub](https://gh-card.dev/repos/AErmie/DevSecOps.svg?fullname=)](https://github.com/AErmie/DevSecOps){target=_blank} [![GSA/site-scanning-engine - GitHub](https://gh-card.dev/repos/GSA/site-scanning-engine.svg?fullname=)](https://github.com/GSA/site-scanning-engine){target=_blank} [![curedao/docs - GitHub](https://gh-card.dev/repos/curedao/docs.svg?fullname=)](https://github.com/curedao/docs){target=_blank} [![practicalli/clojure-web-services - GitHub](https://gh-card.dev/repos/practicalli/clojure-web-services.svg?fullname=)](https://github.com/practicalli/clojure-web-services){target=_blank} diff --git a/docs/configuration.md b/docs/configuration.md index 964b2c85e38..ad4b06f9c10 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -16,45 +16,46 @@ Configuration is assisted with auto-completion and validation in most commonly u ## Common variables -| **ENV VAR** | **Default Value** | **Notes** | -|-----------------------------------------------------|------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **ADDITIONAL_EXCLUDED_DIRECTORIES** | \[\] | List of additional excluded directory basenames. They are excluded at any nested level. | -| [**APPLY_FIXES**](configuration.md#apply-fixes) | `none` | Activates formatting and auto-fixing [(more info)](configuration.md#apply-fixes) | -| **DEFAULT_BRANCH** | `HEAD` | Deprecated: The name of the repository's default branch. | -| **DEFAULT_WORKSPACE** | `/tmp/lint` | The location containing files to lint if you are running locally. | -| **DISABLE_ERRORS** | `false` | Flag to have the linter complete with exit code 0 even if errors were detected. | -| [**DISABLE**](#activation-and-deactivation) | | List of disabled descriptors keys [(more info)](#activation-and-deactivation) | -| [**DISABLE_LINTERS**](#activation-and-deactivation) | | List of disabled linters keys [(more info)](#activation-and-deactivation) | -| [**ENABLE**](#activation-and-deactivation) | | List of enabled descriptors keys [(more info)](#activation-and-deactivation) | -| [**ENABLE_LINTERS**](#activation-and-deactivation) | | List of enabled linters keys [(more info)](#activation-and-deactivation) | -| **EXCLUDED_DIRECTORIES** | \[...many values...\] | List of excluded directory basenames. They are 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 | -| **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 auto-fixed sources, even if there are no errors | -| [**FILTER_REGEX_EXCLUDE**](#filter-linted-files) | `none` | Regular expression defining which files will be excluded from linting [(more info)](#filter-linted-files) .ex: `.*src/test.*`) | -| [**FILTER_REGEX_INCLUDE**](#filter-linted-files) | `all` | Regular expression defining which files will be processed by linters [(more info)](#filter-linted-files) .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 (and not warnings) if this variable is set to `false` | -| **GITHUB_WORKSPACE** | `` | Base directory for `REPORT_OUTPUT_FOLDER`, for user-defined linter rules location, for location of linted files if `DEFAULT_WORKSPACE` is not 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 `.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 (ex: `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`. | -| **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` | -| **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 | -| **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 | -| [**PLUGINS**](plugins.md) | \[\] | List of plugin urls to install and run during MegaLinter run | -| [**POST_COMMANDS**](#post-commands) | \[\] | Custom bash commands to run after linters | -| [**PRE_COMMANDS**](#pre-commands) | \[\] | Custom bash commands to run before linters | -| **PRINT_ALPACA** | `true` | Enable printing alpaca image to console | -| **PRINT_ALL_FILES** | `true` | Display only the number of files processed by a linter, not all file names | -| **REPORT_OUTPUT_FOLDER** | `${GITHUB_WORKSPACE}/report` | Directory for generating report files | -| **SHOW_ELAPSED_TIME** | `false` | Displays elapsed time in reports | -| **SHOW_SKIPPED_LINTERS** | `true` | Displays all disabled linters mega-linter could have run | -| **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. | +| **ENV VAR** | **Default Value** | **Notes** | +|------------------------------------------------------------|------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| **ADDITIONAL_EXCLUDED_DIRECTORIES** | \[\] | List of additional excluded directory basenames. They are excluded at any nested level. | +| [**APPLY_FIXES**](configuration.md#apply-fixes) | `none` | Activates formatting and auto-fixing [(more info)](configuration.md#apply-fixes) | +| **DEFAULT_BRANCH** | `HEAD` | Deprecated: The name of the repository's default branch. | +| **DEFAULT_WORKSPACE** | `/tmp/lint` | The location containing files to lint if you are running locally. | +| **DISABLE_ERRORS** | `false` | Flag to have the linter complete with exit code 0 even if errors were detected. | +| [**DISABLE**](#activation-and-deactivation) | | List of disabled descriptors keys [(more info)](#activation-and-deactivation) | +| [**DISABLE_LINTERS**](#activation-and-deactivation) | | List of disabled linters keys [(more info)](#activation-and-deactivation) | +| [**DISABLE_ERRORS_LINTERS**](#activation-and-deactivation) | | List of enabled but not blocking linters keys [(more info)](#activation-and-deactivation) | +| [**ENABLE**](#activation-and-deactivation) | | List of enabled descriptors keys [(more info)](#activation-and-deactivation) | +| [**ENABLE_LINTERS**](#activation-and-deactivation) | | List of enabled linters keys [(more info)](#activation-and-deactivation) | +| **EXCLUDED_DIRECTORIES** | \[...many values...\] | List of excluded directory basenames. They are 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 | +| **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 auto-fixed sources, even if there are no errors | +| [**FILTER_REGEX_EXCLUDE**](#filter-linted-files) | `none` | Regular expression defining which files will be excluded from linting [(more info)](#filter-linted-files) .ex: `.*src/test.*`) | +| [**FILTER_REGEX_INCLUDE**](#filter-linted-files) | `all` | Regular expression defining which files will be processed by linters [(more info)](#filter-linted-files) .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 (and not warnings) if this variable is set to `false` | +| **GITHUB_WORKSPACE** | `` | Base directory for `REPORT_OUTPUT_FOLDER`, for user-defined linter rules location, for location of linted files if `DEFAULT_WORKSPACE` is not 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 `.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 (ex: `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`. | +| **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` | +| **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 | +| **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 | +| [**PLUGINS**](plugins.md) | \[\] | List of plugin urls to install and run during MegaLinter run | +| [**POST_COMMANDS**](#post-commands) | \[\] | Custom bash commands to run after linters | +| [**PRE_COMMANDS**](#pre-commands) | \[\] | 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 | +| **REPORT_OUTPUT_FOLDER** | `${GITHUB_WORKSPACE}/report` | Directory for generating report files | +| **SHOW_ELAPSED_TIME** | `false` | Displays elapsed time in reports | +| **SHOW_SKIPPED_LINTERS** | `true` | Displays all disabled linters mega-linter could have run | +| **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. | ## Activation and deactivation @@ -64,14 +65,16 @@ MegaLinter have all linters enabled by default, but allows to enable only some, - If `ENABLE_LINTERS` is set, only listed linters will be processed - If `DISABLE` is set, the linters in the listed descriptors will be skipped - If `DISABLE_LINTERS` is set, the listed linters will be skipped +- If `DISABLE_ERRORS_LINTERS` is set, the linter linters will be run, but if errors are found, they will be considered as non blocking Examples: -- Run all javascript and groovy linters except STANDARD javascript linter +- Run all javascript and groovy linters except STANDARD javascript linter. DevSkip errors will be non-blocking ```yaml ENABLE: JAVASCRIPT,GROOVY DISABLE_LINTERS: JAVASCRIPT_STANDARD +DISABLE_ERRORS_LINTERS: REPOSITORY_DEVSKIM ``` - Run all linters except PHP linters (PHP_BUILTIN, PHP_PHPCS, PHP_PHPSTAN, PHP_PSALM) @@ -105,12 +108,12 @@ Mega-linter is able to apply fixes provided by linters. To use this capability, Only for GitHub Action Workflow file if you use it: -- **APPLY_FIXES_EVENT**: `all`, `push`, `pull_request`, `none` _(use none in case of use of [Updated sources reporter](reporters/UpdatedSourcesReporter.md))_ +- **APPLY_FIXES_EVENT**: `all`, `push`, `pull_request`, `none` _(use none in case of use of [Updated sources reporter](https://github.com/megalinter/megalinter/tree/main/docs/reporters/UpdatedSourcesReporter.md))_ - **APPLY_FIXES_MODE**: `commit` to create a new commit and push it on the same branch, or `pull_request` to create a new PR targeting the branch. Notes: -- You can use [**Updated sources reporter**](reporters/UpdatedSourcesReporter.md) if you do not want fixes to be automatically applied on git branch, but **download them in a zipped file** and manually **extract them in your project** +- You can use [**Updated sources reporter**](https://github.com/megalinter/megalinter/tree/main/docs/reporters/UpdatedSourcesReporter.md) if you do not want fixes to be automatically applied on git branch, but **download them in a zipped file** and manually **extract them in your project** - If used, **APPLY_FIXES_EVENT** and **APPLY_FIXES_MODE** can not be defined in `.mega-linter.yml`config file, they must be set as environment variables - If you use **APPLY_FIXES**, add the following line in your `.gitignore file` diff --git a/docs/descriptors/action.md b/docs/descriptors/action.md index 56d204428c0..b6938faa3c5 100644 --- a/docs/descriptors/action.md +++ b/docs/descriptors/action.md @@ -1,6 +1,6 @@ - + # ACTION ## Linters @@ -22,3 +22,10 @@ | ACTION_FILTER_REGEX_INCLUDE | Custom regex including filter | | | ACTION_FILTER_REGEX_EXCLUDE | Custom regex excluding filter | | + +## Behind the scenes + +### Installation + +- APK packages (Linux): + - [go](https://pkgs.alpinelinux.org/packages?branch=edge&name=go) diff --git a/docs/descriptors/action_actionlint.md b/docs/descriptors/action_actionlint.md index 7fb1436064b..8d5ceb2afd5 100644 --- a/docs/descriptors/action_actionlint.md +++ b/docs/descriptors/action_actionlint.md @@ -14,8 +14,8 @@ Static checker for GitHub Actions workflow files ## Configuration in MegaLinter -- Enable actionlint by adding `ACTION_ACTIONLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable actionlint by adding `ACTION_ACTIONLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable actionlint by adding `ACTION_ACTIONLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable actionlint by adding `ACTION_ACTIONLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -37,23 +37,21 @@ Static checker for GitHub Actions workflow files This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/ansible.md b/docs/descriptors/ansible.md index fa53515f443..aa99ef38a3c 100644 --- a/docs/descriptors/ansible.md +++ b/docs/descriptors/ansible.md @@ -1,6 +1,6 @@ - + # ANSIBLE ## Linters diff --git a/docs/descriptors/ansible_ansible_lint.md b/docs/descriptors/ansible_ansible_lint.md index 052ab482fd1..56fe52b04f9 100644 --- a/docs/descriptors/ansible_ansible_lint.md +++ b/docs/descriptors/ansible_ansible_lint.md @@ -14,8 +14,8 @@ ## Configuration in MegaLinter -- Enable ansible-lint by adding `ANSIBLE_ANSIBLE_LINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable ansible-lint by adding `ANSIBLE_ANSIBLE_LINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable ansible-lint by adding `ANSIBLE_ANSIBLE_LINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable ansible-lint by adding `ANSIBLE_ANSIBLE_LINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |--------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -34,23 +34,22 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/arm.md b/docs/descriptors/arm.md index 62334aa4e1d..346effa54d0 100644 --- a/docs/descriptors/arm.md +++ b/docs/descriptors/arm.md @@ -1,6 +1,6 @@ - + # ARM ## Linters @@ -24,3 +24,25 @@ | ARM_FILTER_REGEX_INCLUDE | Custom regex including filter | | | ARM_FILTER_REGEX_EXCLUDE | Custom regex excluding filter | | + +## Behind the scenes + +### Installation + +- Dockerfile commands : +```dockerfile +ARG PWSH_VERSION='latest' +ARG PWSH_DIRECTORY='/opt/microsoft/powershell' +RUN mkdir -p ${PWSH_DIRECTORY} \ + && curl --retry 5 --retry-delay 5 -s https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ + | grep browser_download_url \ + | grep linux-alpine-x64 \ + | cut -d '"' -f 4 \ + | xargs -n 1 wget -O - \ + | tar -xzC ${PWSH_DIRECTORY} \ + && ln -sf ${PWSH_DIRECTORY}/pwsh /usr/bin/pwsh + +``` + +- APK packages (Linux): + - [icu-libs](https://pkgs.alpinelinux.org/packages?branch=edge&name=icu-libs) diff --git a/docs/descriptors/arm_arm_ttk.md b/docs/descriptors/arm_arm_ttk.md index ca00959264e..d28a2ab413f 100644 --- a/docs/descriptors/arm_arm_ttk.md +++ b/docs/descriptors/arm_arm_ttk.md @@ -6,14 +6,14 @@ - Visit [Official Web Site](https://github.com/Azure/arm-ttk#readme){target=_blank} - See [How to configure arm-ttk rules](https://docs.microsoft.com/en-us/azure/azure-resource-manager/templates/test-toolkit#customize-tests){target=_blank} - - If custom `.arm-ttk.psd1` config file is not found, [.arm-ttk.psd1](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.arm-ttk.psd1){target=_blank} will be used + - If custom `.arm-ttk.psd1` config file is not found, [.arm-ttk.psd1](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.arm-ttk.psd1){target=_blank} will be used [![arm-ttk - GitHub](https://gh-card.dev/repos/Azure/arm-ttk.svg?fullname=)](https://github.com/Azure/arm-ttk){target=_blank} ## Configuration in MegaLinter -- Enable arm-ttk by adding `ARM_ARM_TTK` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable arm-ttk by adding `ARM_ARM_TTK` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable arm-ttk by adding `ARM_ARM_TTK` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable arm-ttk by adding `ARM_ARM_TTK` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -36,16 +36,16 @@ Use arm-ttk in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|--------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Visual Studio Code](https://code.visualstudio.com/) | [ARMTTKExtension](https://marketplace.visualstudio.com/items?itemName=Sam-Cogan.ARMTTKExtension) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/Sam-Cogan.ARMTTKExtension){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [ARMTTKExtension](https://marketplace.visualstudio.com/items?itemName=Sam-Cogan.ARMTTKExtension) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/Sam-Cogan.ARMTTKExtension){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | ## Behind the scenes @@ -96,6 +96,19 @@ pwsh -NoProfile -NoLogo -Command " - Dockerfile commands : ```dockerfile +# Parent descriptor install +ARG PWSH_VERSION='latest' +ARG PWSH_DIRECTORY='/opt/microsoft/powershell' +RUN mkdir -p ${PWSH_DIRECTORY} \ + && curl --retry 5 --retry-delay 5 -s https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ + | grep browser_download_url \ + | grep linux-alpine-x64 \ + | cut -d '"' -f 4 \ + | xargs -n 1 wget -O - \ + | tar -xzC ${PWSH_DIRECTORY} \ + && ln -sf ${PWSH_DIRECTORY}/pwsh /usr/bin/pwsh + +# Linter install ARG ARM_TTK_NAME='master.zip' ARG ARM_TTK_URI='https://github.com/Azure/arm-ttk/archive/master.zip' ARG ARM_TTK_DIRECTORY='/opt/microsoft' @@ -108,83 +121,3 @@ RUN curl --retry 5 --retry-delay 5 -sLO "${ARM_TTK_URI}" \ ``` - -### Example success log - -```shell -Results of arm-ttk linter (version 0.0.0) -See documentation on https://megalinter.github.io/descriptors/arm_arm_ttk/ ------------------------------------------------ - -[SUCCESS] .automation/test/arm/arm_good_1.json - Validating arm\arm_good_1.json deploymentTemplate - [+] adminUsername Should Not Be A Literal (70 ms) - - [+] apiVersions Should Be Recent (67 ms) - [+] artifacts parameter (12 ms) - [+] DependsOn Best Practices (8 ms) - [+] Deployment Resources Must Not Be Debug (8 ms) - [+] DeploymentTemplate Must Not Contain Hardcoded Uri (17 ms) - [+] DeploymentTemplate Schema Is Correct (4 ms) - [+] Dynamic Variable References Should Not Use Concat (69 ms) - [+] IDs Should Be Derived From ResourceIDs (33 ms) - [+] Location Should Not Be Hardcoded (30 ms) - [+] ManagedIdentityExtension must not be used (2 ms) - [+] Min And Max Value Are Numbers (6 ms) - [+] Outputs Must Not Contain Secrets (9 ms) - [+] Parameters Must Be Referenced (9 ms) - [+] Parameters Property Must Exist (3 ms) - [+] providers apiVersions Is Not Permitted (2 ms) - [+] ResourceIds should not contain (9 ms) - [+] Resources Should Have Location (2 ms) - [+] Secure String Parameters Cannot Have Default (3 ms) - [+] Template Should Not Contain Blanks (6 ms) - [+] Variables Must Be Referenced (28 ms) - [+] Virtual Machines Should Not Be Preview (16 ms) - [+] VM Images Should Use Latest Version (1 ms) - [+] VM Size Should Be A Parameter (15 ms) - -``` - -### Example error log - -```shell -Results of arm-ttk linter (version 0.0.0) -See documentation on https://megalinter.github.io/descriptors/arm_arm_ttk/ ------------------------------------------------ - -[ERROR] .automation/test/arm/arm_bad_1.json - Validating arm\arm_bad_1.json deploymentTemplate - [+] adminUsername Should Not Be A Literal (69 ms) - - [+] apiVersions Should Be Recent (97 ms) - [+] artifacts parameter (11 ms) - [+] DependsOn Best Practices (6 ms) - [+] Deployment Resources Must Not Be Debug (7 ms) - [+] DeploymentTemplate Must Not Contain Hardcoded Uri (17 ms) - [+] DeploymentTemplate Schema Is Correct (4 ms) - [+] Dynamic Variable References Should Not Use Concat (3 ms) - [+] IDs Should Be Derived From ResourceIDs (18 ms) - [+] Location Should Not Be Hardcoded (27 ms) - [+] ManagedIdentityExtension must not be used (3 ms) - [+] Min And Max Value Are Numbers (7 ms) - [+] Outputs Must Not Contain Secrets (10 ms) - [+] Parameters Must Be Referenced (10 ms) - [+] Parameters Property Must Exist (3 ms) - [+] providers apiVersions Is Not Permitted (2 ms) - [+] ResourceIds should not contain (10 ms) - [+] Resources Should Have Location (2 ms) - [+] Secure String Parameters Cannot Have Default (3 ms) - [-] Template Should Not Contain Blanks (21 ms) - ::error:: Empty property: [] found on line: 28 Index:1331 - ::error:: Empty property: "" found on line: 3 Index:121 - - [-] Variables Must Be Referenced (80 ms) - ::error:: Unreferenced variable: Network.Location - ::error:: Unreferenced variable: Test.Blank.Variable - - [+] Virtual Machines Should Not Be Preview (18 ms) - [+] VM Images Should Use Latest Version (1 ms) - [+] VM Size Should Be A Parameter (13 ms) - -``` diff --git a/docs/descriptors/bash.md b/docs/descriptors/bash.md index 764ddeaf214..a3128b2ed8c 100644 --- a/docs/descriptors/bash.md +++ b/docs/descriptors/bash.md @@ -1,6 +1,6 @@ - + # BASH ## Linters @@ -26,3 +26,10 @@ | BASH_FILTER_REGEX_INCLUDE | Custom regex including filter | | | BASH_FILTER_REGEX_EXCLUDE | Custom regex excluding filter | | + +## Behind the scenes + +### Installation + +- APK packages (Linux): + - [bash](https://pkgs.alpinelinux.org/packages?branch=edge&name=bash) diff --git a/docs/descriptors/bash_bash_exec.md b/docs/descriptors/bash_bash_exec.md index 22549d4ad9e..be4155d45b0 100644 --- a/docs/descriptors/bash_bash_exec.md +++ b/docs/descriptors/bash_bash_exec.md @@ -13,8 +13,8 @@ Note: You can run `git add --chmod=+x myfile.sh` to make a file executable on Wi ## Configuration in MegaLinter -- Enable bash-exec by adding `BASH_EXEC` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable bash-exec by adding `BASH_EXEC` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable bash-exec by adding `BASH_EXEC` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable bash-exec by adding `BASH_EXEC` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------| @@ -34,24 +34,22 @@ Note: You can run `git add --chmod=+x myfile.sh` to make a file executable on Wi This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -115,27 +113,3 @@ RUN printf '#!/bin/bash \\n\\nif [[ -x "$1" ]]; then exit 0; else echo "Error: F ``` - -### Example success log - -```shell -Results of bash-exec linter (version 5.0.17) -See documentation on https://megalinter.github.io/descriptors/bash_bash_exec/ ------------------------------------------------ - -[SUCCESS] .automation/test/shell/shell_good_1.sh - - -``` - -### Example error log - -```shell -Results of bash-exec linter (version 5.0.17) -See documentation on https://megalinter.github.io/descriptors/bash_bash_exec/ ------------------------------------------------ - -[ERROR] .automation/test/shell/shell_bad_1.sh - Error: File:[.automation/test/shell/shell_bad_1.sh] is not executable - -``` diff --git a/docs/descriptors/bash_shellcheck.md b/docs/descriptors/bash_shellcheck.md index d04ecb62375..4136719cdcd 100644 --- a/docs/descriptors/bash_shellcheck.md +++ b/docs/descriptors/bash_shellcheck.md @@ -13,8 +13,8 @@ ## Configuration in MegaLinter -- Enable shellcheck by adding `BASH_SHELLCHECK` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable shellcheck by adding `BASH_SHELLCHECK` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable shellcheck by adding `BASH_SHELLCHECK` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable shellcheck by adding `BASH_SHELLCHECK` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |---------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------| @@ -35,37 +35,36 @@ Use shellcheck in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-----------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-shellcheck](https://github.com/AtomLinter/linter-shellcheck) | [Visit Web Site](https://github.com/AtomLinter/linter-shellcheck){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](https://github.com/flycheck/flycheck) | [Visit Web Site](https://github.com/flycheck/flycheck){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [flymake-shellcheck](https://github.com/federicotdn/flymake-shellcheck) | [Visit Web Site](https://github.com/federicotdn/flymake-shellcheck){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-shellcheck](https://github.com/SublimeLinter/SublimeLinter-shellcheck) | [Visit Web Site](https://github.com/SublimeLinter/SublimeLinter-shellcheck){target=_blank} | -| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | -| | [vim](https://www.vim.org/) | [neomake](https://github.com/neomake/neomake) | [Visit Web Site](https://github.com/neomake/neomake){target=_blank} | -| | [vim](https://www.vim.org/) | [syntastic](https://github.com/scrooloose/syntastic) | [Visit Web Site](https://github.com/scrooloose/syntastic){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-shellcheck](https://marketplace.visualstudio.com/items?itemName=timonwong.shellcheck) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/timonwong.shellcheck){target=_blank} | +| | [Atom](https://atom.io/) | [linter-shellcheck](https://github.com/AtomLinter/linter-shellcheck) | [Visit Web Site](https://github.com/AtomLinter/linter-shellcheck){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](https://github.com/flycheck/flycheck) | [Visit Web Site](https://github.com/flycheck/flycheck){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [flymake-shellcheck](https://github.com/federicotdn/flymake-shellcheck) | [Visit Web Site](https://github.com/federicotdn/flymake-shellcheck){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-shellcheck](https://github.com/SublimeLinter/SublimeLinter-shellcheck) | [Visit Web Site](https://github.com/SublimeLinter/SublimeLinter-shellcheck){target=_blank} | +| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | +| | [vim](https://www.vim.org/) | [neomake](https://github.com/neomake/neomake) | [Visit Web Site](https://github.com/neomake/neomake){target=_blank} | +| | [vim](https://www.vim.org/) | [syntastic](https://github.com/scrooloose/syntastic) | [Visit Web Site](https://github.com/scrooloose/syntastic){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-shellcheck](https://marketplace.visualstudio.com/items?itemName=timonwong.shellcheck) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/timonwong.shellcheck){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -121,38 +120,3 @@ RUN ML_THIRD_PARTY_DIR="/third-party/shellcheck" \ ``` - -### Example success log - -```shell -Results of shellcheck linter (version 0.7.1) -See documentation on https://megalinter.github.io/descriptors/bash_shellcheck/ ------------------------------------------------ - -[SUCCESS] .automation/test/shell/shell_good_1.sh - - -``` - -### Example error log - -```shell -Results of shellcheck linter (version 0.7.1) -See documentation on https://megalinter.github.io/descriptors/bash_shellcheck/ ------------------------------------------------ - -[ERROR] .automation/test/shell/shell_bad_1.sh - - In .automation/test/shell/shell_bad_1.sh line 10: - if [ $ERROR_CODE -ne 0]; then - ^-- SC1009: The mentioned syntax error was in this if expression. - ^-- SC1073: Couldn't parse this test expression. Fix to allow more checks. - ^-- SC1020: You need a space before the ]. - ^-- SC1072: Missing space before ]. Fix any mentioned problems and try again. - - For more information: - https://www.shellcheck.net/wiki/SC1020 -- You need a space before the ]. - https://www.shellcheck.net/wiki/SC1072 -- Missing space before ]. Fix any m... - https://www.shellcheck.net/wiki/SC1073 -- Couldn't parse this test expressi... - -``` diff --git a/docs/descriptors/bash_shfmt.md b/docs/descriptors/bash_shfmt.md index a42dc8979b3..3260dc825c6 100644 --- a/docs/descriptors/bash_shfmt.md +++ b/docs/descriptors/bash_shfmt.md @@ -11,10 +11,10 @@ ## Configuration in MegaLinter -- Enable shfmt by adding `BASH_SHFMT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable shfmt by adding `BASH_SHFMT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable shfmt by adding `BASH_SHFMT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable shfmt by adding `BASH_SHFMT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `BASH_SHFMT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `BASH_SHFMT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------| @@ -35,36 +35,34 @@ Use shfmt in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-----------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [format-shell](https://atom.io/packages/format-shell) | [Visit Web Site](https://atom.io/packages/format-shell){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [emacs-shfmt](https://github.com/purcell/emacs-shfmt/) | [Visit Web Site](https://github.com/purcell/emacs-shfmt/){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [shell-scripts](https://www.jetbrains.com/help/idea/shell-scripts.html) | [Visit Web Site](https://www.jetbrains.com/help/idea/shell-scripts.html){target=_blank} | -| | micro | [micro](https://micro-editor.github.io/) | [Visit Web Site](https://micro-editor.github.io/){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [Sublime-Pretty-Shell](https://github.com/aerobounce/Sublime-Pretty-Shell) | [Visit Web Site](https://github.com/aerobounce/Sublime-Pretty-Shell){target=_blank} | -| | [vim](https://www.vim.org/) | [vim-shfmt](https://github.com/z0mbix/vim-shfmt) | [Visit Web Site](https://github.com/z0mbix/vim-shfmt){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [shell-format](https://marketplace.visualstudio.com/items?itemName=foxundermoon.shell-format) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/foxundermoon.shell-format){target=_blank} | +| | [Atom](https://atom.io/) | [format-shell](https://atom.io/packages/format-shell) | [Visit Web Site](https://atom.io/packages/format-shell){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [emacs-shfmt](https://github.com/purcell/emacs-shfmt/) | [Visit Web Site](https://github.com/purcell/emacs-shfmt/){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [shell-scripts](https://www.jetbrains.com/help/idea/shell-scripts.html) | [Visit Web Site](https://www.jetbrains.com/help/idea/shell-scripts.html){target=_blank} | +| | micro | [micro](https://micro-editor.github.io/) | [Visit Web Site](https://micro-editor.github.io/){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [Sublime-Pretty-Shell](https://github.com/aerobounce/Sublime-Pretty-Shell) | [Visit Web Site](https://github.com/aerobounce/Sublime-Pretty-Shell){target=_blank} | +| | [vim](https://www.vim.org/) | [vim-shfmt](https://github.com/z0mbix/vim-shfmt) | [Visit Web Site](https://github.com/z0mbix/vim-shfmt){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [shell-format](https://marketplace.visualstudio.com/items?itemName=foxundermoon.shell-format) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/foxundermoon.shell-format){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -137,44 +135,6 @@ FROM mvdan/shfmt:latest-alpine as shfmt COPY --from=shfmt /bin/shfmt /usr/bin/ ``` - -### Example success log - -```shell -Results of shfmt linter (version 3.2.1) -See documentation on https://megalinter.github.io/descriptors/bash_shfmt/ ------------------------------------------------ - -[SUCCESS] .automation/test/shell_shfmt/shell-shfmt_good_1.sh - - -``` - -### Example error log - -```shell -Results of shfmt linter (version 3.2.1) -See documentation on https://megalinter.github.io/descriptors/bash_shfmt/ ------------------------------------------------ - -[ERROR] .automation/test/shell_shfmt/shell-shfmt_bad_1.sh - --- .automation/test/shell_shfmt/shell-shfmt_bad_1.sh.orig - +++ .automation/test/shell_shfmt/shell-shfmt_bad_1.sh - @@ -8,10 +8,10 @@ - - # Check the shell - if [ ${ERROR_CODE} -ne 0 ]; then - - echo "We did it!" - - exit 0 - + echo "We did it!" - + exit 0 - else - - echo "We done goofed it..." - - echo "${HELLO_WORLD}" - - exit 1 - + echo "We done goofed it..." - + echo "${HELLO_WORLD}" - + exit 1 - fi - -``` +- APK packages (Linux): + - [bash](https://pkgs.alpinelinux.org/packages?branch=edge&name=bash) + - [go](https://pkgs.alpinelinux.org/packages?branch=edge&name=go) diff --git a/docs/descriptors/c.md b/docs/descriptors/c.md index c13edd88f72..74052add9ff 100644 --- a/docs/descriptors/c.md +++ b/docs/descriptors/c.md @@ -1,6 +1,6 @@ - + # C ## Linters diff --git a/docs/descriptors/c_cpplint.md b/docs/descriptors/c_cpplint.md index 98967009f72..b9be966e546 100644 --- a/docs/descriptors/c_cpplint.md +++ b/docs/descriptors/c_cpplint.md @@ -12,8 +12,8 @@ ## Configuration in MegaLinter -- Enable cpplint by adding `C_CPPLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable cpplint by adding `C_CPPLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable cpplint by adding `C_CPPLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable cpplint by adding `C_CPPLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -32,10 +32,10 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | ## Behind the scenes @@ -273,30 +273,3 @@ Syntax: cpplint.py [--verbose=#] [--output=emacs|eclipse|vs7|junit|sed|gsed] - PIP packages (Python): - [cpplint](https://pypi.org/project/cpplint) - -### Example success log - -```shell -Results of cpplint linter (version 1.5.4) -See documentation on https://megalinter.github.io/descriptors/c_cpplint/ ------------------------------------------------ - -[SUCCESS] .automation/test/c/c_good_01.c - Done processing .automation/test/c/c_good_01.c - -``` - -### Example error log - -```shell -Results of cpplint linter (version 1.5.4) -See documentation on https://megalinter.github.io/descriptors/c_cpplint/ ------------------------------------------------ - -[ERROR] .automation/test/c/c_bad_01.c - .automation/test/c/c_bad_01.c:0: No copyright message found. You should have a line: "Copyright [year] " [legal/copyright] [5] - .automation/test/c/c_bad_01.c:6: Could not find a newline character at the end of the file. [whitespace/ending_newline] [5] - Done processing .automation/test/c/c_bad_01.c - Total errors found: 2 - -``` diff --git a/docs/descriptors/clojure.md b/docs/descriptors/clojure.md index 86314cd6eb6..074db1744a9 100644 --- a/docs/descriptors/clojure.md +++ b/docs/descriptors/clojure.md @@ -1,6 +1,6 @@ - + # CLOJURE ## Linters diff --git a/docs/descriptors/clojure_clj_kondo.md b/docs/descriptors/clojure_clj_kondo.md index a310725bff9..e87dc1cf923 100644 --- a/docs/descriptors/clojure_clj_kondo.md +++ b/docs/descriptors/clojure_clj_kondo.md @@ -14,7 +14,7 @@ - Version in MegaLinter: **2022.04.25** - Visit [Official Web Site](https://github.com/borkdude/clj-kondo#readme){target=_blank} - See [How to configure clj-kondo rules](https://github.com/borkdude/clj-kondo/blob/master/doc/config.md#configuration){target=_blank} - - If custom `.clj-kondo/config.edn` config file is not found, [.clj-kondo/config.edn](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.clj-kondo/config.edn){target=_blank} will be used + - If custom `.clj-kondo/config.edn` config file is not found, [.clj-kondo/config.edn](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.clj-kondo/config.edn){target=_blank} will be used - See [How to disable clj-kondo rules in files](https://github.com/clj-kondo/clj-kondo/blob/master/doc/config.md#ignore-warnings-in-an-expression){target=_blank} - See [Index of problems detected by clj-kondo](https://github.com/borkdude/clj-kondo#features){target=_blank} @@ -22,8 +22,8 @@ ## Configuration in MegaLinter -- Enable clj-kondo by adding `CLOJURE_CLJ_KONDO` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable clj-kondo by adding `CLOJURE_CLJ_KONDO` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable clj-kondo by adding `CLOJURE_CLJ_KONDO` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable clj-kondo by adding `CLOJURE_CLJ_KONDO` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -46,19 +46,19 @@ Use clj-kondo in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-kondo](https://atom.io/packages/linter-kondo) | [Visit Web Site](https://atom.io/packages/linter-kondo){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck-clj-kondo](https://github.com/borkdude/flycheck-clj-kondo) | [Visit Web Site](https://github.com/borkdude/flycheck-clj-kondo){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [clj-kondo](https://marketplace.visualstudio.com/items?itemName=borkdude.clj-kondo) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/borkdude.clj-kondo){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [Clojure lint](https://github.com/marcomorain/clojure-lint) | [Visit Web Site](https://github.com/marcomorain/clojure-lint){target=_blank} | +| | [Atom](https://atom.io/) | [linter-kondo](https://atom.io/packages/linter-kondo) | [Visit Web Site](https://atom.io/packages/linter-kondo){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck-clj-kondo](https://github.com/borkdude/flycheck-clj-kondo) | [Visit Web Site](https://github.com/borkdude/flycheck-clj-kondo){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [clj-kondo](https://marketplace.visualstudio.com/items?itemName=borkdude.clj-kondo) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/borkdude.clj-kondo){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [Clojure lint](https://github.com/marcomorain/clojure-lint) | [Visit Web Site](https://github.com/marcomorain/clojure-lint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:----------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:----------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | ## Behind the scenes @@ -137,49 +137,3 @@ FROM cljkondo/clj-kondo:2022.04.25-alpine as clj-kondo COPY --from=clj-kondo /bin/clj-kondo /usr/bin/ ``` - -### Example success log - -```shell -Results of clj-kondo linter (version 2020.09.09) -See documentation on https://megalinter.github.io/descriptors/clojure_clj_kondo/ ------------------------------------------------ - -[SUCCESS] .automation/test/clojure/clojure_good_1.clj - linting took 14ms, errors: 0, warnings: 0 - -``` - -### Example error log - -```shell -Results of clj-kondo linter (version 2020.09.09) -See documentation on https://megalinter.github.io/descriptors/clojure_clj_kondo/ ------------------------------------------------ - -[ERROR] .automation/test/clojure/clojure_bad_1.clj - .automation/test/clojure/clojure_bad_1.clj:5:5: warning: namespace clojure.set is required but never used - .automation/test/clojure/clojure_bad_1.clj:8:2: error: unresolved symbol but-last - .automation/test/clojure/clojure_bad_1.clj:12:1: error: clojure.string/join is called with 0 args but expects 1 or 2 - .automation/test/clojure/clojure_bad_1.clj:15:17: warning: unused binding y - .automation/test/clojure/clojure_bad_1.clj:17:3: warning: redundant do - .automation/test/clojure/clojure_bad_1.clj:19:5: warning: inline def - .automation/test/clojure/clojure_bad_1.clj:22:7: warning: Redundant let expression. - .automation/test/clojure/clojure_bad_1.clj:22:13: warning: unused binding z - .automation/test/clojure/clojure_bad_1.clj:24:9: error: y is called with 1 arg but expects 0 - .automation/test/clojure/clojure_bad_1.clj:26:9: error: recur argument count mismatch (expected 2, got 0) - .automation/test/clojure/clojure_bad_1.clj:29:9: error: h is called with 1 arg but expects 0 - .automation/test/clojure/clojure_bad_1.clj:30:9: error: f is called with 1 arg but expects 0 - .automation/test/clojure/clojure_bad_1.clj:34:1: warning: redefined var #'foo/private-fn - .automation/test/clojure/clojure_bad_1.clj:34:8: warning: Unused private var foo/private-fn - .automation/test/clojure/clojure_bad_1.clj:38:6: error: Expected: number, received: keyword. - .automation/test/clojure/clojure_bad_1.clj:42:1: error: java.lang.Thread/sleep is called with 3 args but expects 1 or 2 - .automation/test/clojure/clojure_bad_1.clj:48:1: error: foo/foo-fn is called with 0 args but expects 2 - .automation/test/clojure/clojure_bad_1.clj:51:1: error: #'foo/private-fn is private - .automation/test/clojure/clojure_bad_1.clj:54:7: error: duplicate key :a - .automation/test/clojure/clojure_bad_1.clj:56:5: error: duplicate set element 1 - .automation/test/clojure/clojure_bad_1.clj:58:7: error: missing value for key :b - .automation/test/clojure/clojure_bad_1.clj:64:3: warning: missing test assertion - linting took 14ms, errors: 13, warnings: 9 - -``` diff --git a/docs/descriptors/cloudformation.md b/docs/descriptors/cloudformation.md index ef939ae0f6d..e9faf2f3ce2 100644 --- a/docs/descriptors/cloudformation.md +++ b/docs/descriptors/cloudformation.md @@ -1,13 +1,13 @@ - + # CLOUDFORMATION ## Linters -| Linter | Configuration key | Status | -|----------------------------------------|----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------| -| [cfn-lint](cloudformation_cfn_lint.md) | [CLOUDFORMATION](cloudformation_cfn_lint.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/martysweet/cfn-lint)](https://github.com/martysweet/cfn-lint/commits) | +| Linter | Configuration key | Status | +|----------------------------------------|----------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------| +| [cfn-lint](cloudformation_cfn_lint.md) | [CLOUDFORMATION](cloudformation_cfn_lint.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/aws-cloudformation/cfn-lint)](https://github.com/aws-cloudformation/cfn-lint/commits) | ## Linted files diff --git a/docs/descriptors/cloudformation_cfn_lint.md b/docs/descriptors/cloudformation_cfn_lint.md index 55f4b224c40..81137b5aa3e 100644 --- a/docs/descriptors/cloudformation_cfn_lint.md +++ b/docs/descriptors/cloudformation_cfn_lint.md @@ -2,33 +2,33 @@ -[![GitHub last commit](https://img.shields.io/github/last-commit/martysweet/cfn-lint)](https://github.com/martysweet/cfn-lint/commits) +[![GitHub last commit](https://img.shields.io/github/last-commit/aws-cloudformation/cfn-lint)](https://github.com/aws-cloudformation/cfn-lint/commits) ## cfn-lint documentation - Version in MegaLinter: **0.61.1** -- Visit [Official Web Site](https://github.com/martysweet/cfn-lint#readme){target=_blank} - - If custom `.cfnlintrc.yml` config file is not found, [.cfnlintrc.yml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.cfnlintrc.yml){target=_blank} will be used -- See [Index of problems detected by cfn-lint](https://github.com/martysweet/cfn-lint#what-can-cfn-lint-do){target=_blank} +- Visit [Official Web Site](https://github.com/aws-cloudformation/cfn-lint#readme){target=_blank} + - If custom `.cfnlintrc.yml` config file is not found, [.cfnlintrc.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.cfnlintrc.yml){target=_blank} will be used +- See [Index of problems detected by cfn-lint](https://github.com/aws-cloudformation/cfn-lint/blob/main/docs/rules.md){target=_blank} -[![cfn-lint - GitHub](https://gh-card.dev/repos/martysweet/cfn-lint.svg?fullname=)](https://github.com/martysweet/cfn-lint){target=_blank} +[![cfn-lint - GitHub](https://gh-card.dev/repos/aws-cloudformation/cfn-lint.svg?fullname=)](https://github.com/aws-cloudformation/cfn-lint){target=_blank} ## Configuration in MegaLinter -- Enable cfn-lint by adding `CLOUDFORMATION_CFN_LINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable cfn-lint by adding `CLOUDFORMATION_CFN_LINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable cfn-lint by adding `CLOUDFORMATION_CFN_LINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable cfn-lint by adding `CLOUDFORMATION_CFN_LINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| | CLOUDFORMATION_CFN_LINT_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | | CLOUDFORMATION_CFN_LINT_FILTER_REGEX_INCLUDE | Custom regex including filter
Ex: `(src\|lib)` | Include every file | | CLOUDFORMATION_CFN_LINT_FILTER_REGEX_EXCLUDE | Custom regex excluding filter
Ex: `(test\|examples)` | Exclude no file | -| CLOUDFORMATION_CFN_LINT_CLI_LINT_MODE | Override default CLI lint mode
- `file`: Calls the linter for each file
- `list_of_files`: Call the linter with the list of files as argument
- `project`: Call the linter from the root of the project | `file` | +| CLOUDFORMATION_CFN_LINT_CLI_LINT_MODE | Override default CLI lint mode
- `file`: Calls the linter for each file
- `list_of_files`: Call the linter with the list of files as argument
- `project`: Call the linter from the root of the project | `list_of_files` | | CLOUDFORMATION_CFN_LINT_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | `[".yml", ".yaml", ".json"]` | | CLOUDFORMATION_CFN_LINT_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | | CLOUDFORMATION_CFN_LINT_PRE_COMMANDS | List of bash commands to run before the linter | None | @@ -42,19 +42,21 @@ Use cfn-lint in your favorite IDE to catch errors before MegaLinter ! -| | IDE | Extension Name | Install | -|:-------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [atom-cfn-lint](https://atom.io/packages/atom-cfn-lint) | [Visit Web Site](https://atom.io/packages/atom-cfn-lint){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [cfn-lint](https://plugins.jetbrains.com/plugin/10973-cfn-lint) | | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-cfn-lint](https://marketplace.visualstudio.com/items?itemName=kddejong.vscode-cfn-lint) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/kddejong.vscode-cfn-lint){target=_blank} | +| | IDE | Extension Name | Install | +|:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|---------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [Atom](https://atom.io/) | [atom-cfn-lint](https://atom.io/packages/atom-cfn-lint) | [Visit Web Site](https://atom.io/packages/atom-cfn-lint){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [cfn-lint](https://plugins.jetbrains.com/plugin/10973-cfn-lint) | | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter CloudFormation](https://packagecontrol.io/packages/SublimeLinter-contrib-cloudformation) | [Visit Web Site](https://packagecontrol.io/packages/SublimeLinter-contrib-cloudformation){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-cfn-lint](https://marketplace.visualstudio.com/items?itemName=kddejong.vscode-cfn-lint) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/kddejong.vscode-cfn-lint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | ## Behind the scenes @@ -67,7 +69,7 @@ This linter is available in the following flavours ### How the linting is performed -- cfn-lint is called one time by identified file +- cfn-lint is called once with the list of files as arguments ### Example calls @@ -148,53 +150,5 @@ Advanced / Debugging: ### Installation on mega-linter Docker image -- NPM packages (node.js): - - [asl-validator](https://www.npmjs.com/package/asl-validator) - PIP packages (Python): - [cfn-lint](https://pypi.org/project/cfn-lint) - -### Example success log - -```shell -Results of cfn-lint linter (version 0.43.0) -See documentation on https://megalinter.github.io/descriptors/cloudformation_cfn_lint/ ------------------------------------------------ - -[SUCCESS] .automation/test/cloudformation/cloudformation_good_1.json - - -[SUCCESS] .automation/test/cloudformation/cloudformation_good_2.yaml - - -[SUCCESS] .automation/test/cloudformation/cloudformation_good_3.json - - -[SUCCESS] .automation/test/cloudformation/cloudformation_good_4.yaml - - -``` - -### Example error log - -```shell -Results of cfn-lint linter (version 0.43.0) -See documentation on https://megalinter.github.io/descriptors/cloudformation_cfn_lint/ ------------------------------------------------ - -[ERROR] .automation/test/cloudformation/cloudformation_bad_1.json - E3001 Invalid or unsupported Type AWS::Route53::HostedZonee for resource DNS in us-east-1 - .automation/test/cloudformation/cloudformation_bad_1.json:6:10 - -[ERROR] .automation/test/cloudformation/cloudformation_bad_2.yaml - E3001 Invalid or unsupported Type AWS::Route53::HostedZonee for resource DNS in us-east-1 - .automation/test/cloudformation/cloudformation_bad_2.yaml:5:5 - -[ERROR] .automation/test/cloudformation/cloudformation_bad_3.json - E3002 Invalid Property Resources/myDNSRecord/Properties/Ttl - .automation/test/cloudformation/cloudformation_bad_3.json:11:13 - -[ERROR] .automation/test/cloudformation/cloudformation_bad_4.yaml - E3002 Invalid Property Resources/myDNSRecord/Properties/Ttl - .automation/test/cloudformation/cloudformation_bad_4.yaml:9:7 - -``` diff --git a/docs/descriptors/coffee.md b/docs/descriptors/coffee.md index ba06c011f43..9842c2d4ce3 100644 --- a/docs/descriptors/coffee.md +++ b/docs/descriptors/coffee.md @@ -1,6 +1,6 @@ - + # COFFEE ## Linters diff --git a/docs/descriptors/coffee_coffeelint.md b/docs/descriptors/coffee_coffeelint.md index fc1a27e8129..dfea15df152 100644 --- a/docs/descriptors/coffee_coffeelint.md +++ b/docs/descriptors/coffee_coffeelint.md @@ -7,7 +7,7 @@ - Version in MegaLinter: **5.2.9** - Visit [Official Web Site](http://www.coffeelint.org){target=_blank} - See [How to configure coffeelint rules](http://www.coffeelint.org/#options){target=_blank} - - If custom `.coffee-lint.json` config file is not found, [.coffee-lint.json](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.coffee-lint.json){target=_blank} will be used + - If custom `.coffee-lint.json` config file is not found, [.coffee-lint.json](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.coffee-lint.json){target=_blank} will be used - See [How to disable coffeelint rules in files](http://www.coffeelint.org/#options){target=_blank} - See [Index of problems detected by coffeelint](http://www.coffeelint.org/#options){target=_blank} @@ -15,8 +15,8 @@ ## Configuration in MegaLinter -- Enable coffeelint by adding `COFFEE_COFFEELINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable coffeelint by adding `COFFEE_COFFEELINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable coffeelint by adding `COFFEE_COFFEELINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable coffeelint by adding `COFFEE_COFFEELINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -39,17 +39,17 @@ Use coffeelint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-----------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|--------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-coffeelint](https://atom.io/packages/linter-coffeelint) | [Visit Web Site](https://atom.io/packages/linter-coffeelint){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [coffeelint](https://plugins.jetbrains.com/plugin/7723-coffeelint) | | +| | [Atom](https://atom.io/) | [linter-coffeelint](https://atom.io/packages/linter-coffeelint) | [Visit Web Site](https://atom.io/packages/linter-coffeelint){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [coffeelint](https://plugins.jetbrains.com/plugin/7723-coffeelint) | | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes @@ -109,35 +109,3 @@ Options: - NPM packages (node.js): - [@coffeelint/cli](https://www.npmjs.com/package/@coffeelint/cli) - -### Example success log - -```shell -Results of coffeelint linter (version 4.1.2) -See documentation on https://megalinter.github.io/descriptors/coffee_coffeelint/ ------------------------------------------------ - -[SUCCESS] .automation/test/coffeescript/coffeescript_good_1.coffee - ⚡ .automation/test/coffeescript/coffeescript_good_1.coffee - ⚡ #65-65: Line contains inconsistent indentation. (indentation) Expected 2 got 3. - - ⚡ Warning! » 0 errors and 1 warning in 1 file - -``` - -### Example error log - -```shell -Results of coffeelint linter (version 4.1.2) -See documentation on https://megalinter.github.io/descriptors/coffee_coffeelint/ ------------------------------------------------ - -[ERROR] .automation/test/coffeescript/coffeescript_bad_1.coffee - ✗ .automation/test/coffeescript/coffeescript_bad_1.coffee - ✗ #39: [stdin]:39:29: error: unmatched ) - module.exports = (robot) -> ) - ^. (coffeescript_error) - - ✗ Lint! » 1 error and 0 warnings in 1 file - -``` diff --git a/docs/descriptors/copypaste.md b/docs/descriptors/copypaste.md index 3f0d95c6b9b..0649203f7ce 100644 --- a/docs/descriptors/copypaste.md +++ b/docs/descriptors/copypaste.md @@ -1,6 +1,6 @@ - + # COPYPASTE ## Linters diff --git a/docs/descriptors/copypaste_jscpd.md b/docs/descriptors/copypaste_jscpd.md index 54812420177..8ad461fe6d7 100644 --- a/docs/descriptors/copypaste_jscpd.md +++ b/docs/descriptors/copypaste_jscpd.md @@ -33,15 +33,15 @@ Example: - Version in MegaLinter: **3.3.26** - Visit [Official Web Site](https://github.com/kucherenko/jscpd/tree/master/packages/jscpd#readme){target=_blank} - See [How to configure jscpd rules](https://github.com/kucherenko/jscpd/tree/master/packages/jscpd#config-file){target=_blank} - - If custom `.jscpd.json` config file is not found, [.jscpd.json](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.jscpd.json){target=_blank} will be used + - If custom `.jscpd.json` config file is not found, [.jscpd.json](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.jscpd.json){target=_blank} will be used - See [How to disable jscpd rules in files](https://github.com/kucherenko/jscpd/tree/master/packages/jscpd#ignored-blocks){target=_blank} [![jscpd - GitHub](https://gh-card.dev/repos/kucherenko/jscpd.svg?fullname=)](https://github.com/kucherenko/jscpd){target=_blank} ## Configuration in MegaLinter -- Enable jscpd by adding `COPYPASTE_JSCPD` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable jscpd by adding `COPYPASTE_JSCPD` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable jscpd by adding `COPYPASTE_JSCPD` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable jscpd by adding `COPYPASTE_JSCPD` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |---------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -59,23 +59,21 @@ Example: This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -157,56 +155,9 @@ Options: ### Installation on mega-linter Docker image +- APK packages (Linux): + - [nodejs](https://pkgs.alpinelinux.org/packages?branch=edge&name=nodejs) + - [npm](https://pkgs.alpinelinux.org/packages?branch=edge&name=npm) + - [yarn](https://pkgs.alpinelinux.org/packages?branch=edge&name=yarn) - NPM packages (node.js): - [jscpd@3.3.26](https://www.npmjs.com/package/jscpd) - -### Example success log - -```shell -Results of jscpd linter (version 3.3.22) -See documentation on https://megalinter.github.io/descriptors/copypaste_jscpd/ ------------------------------------------------ - -[SUCCESS] .automation/test/copypaste/good - ┌────────┬────────────────┬─────────────┬──────────────┬──────────────┬──────────────────┬───────────────────┐ - │ Format │ Files analyzed │ Total lines │ Total tokens │ Clones found │ Duplicated lines │ Duplicated tokens │ - ├────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤ - │ go │ 2 │ 12 │ 52 │ 0 │ 0 (0%) │ 0 (0%) │ - ├────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤ - │ Total: │ 2 │ 12 │ 52 │ 0 │ 0 (0%) │ 0 (0%) │ - └────────┴────────────────┴─────────────┴──────────────┴──────────────┴──────────────────┴───────────────────┘ - Found 0 clones. - HTML report saved to report/copy-paste/html/ - Detection time:: 42.298ms - -``` - -### Example error log - -```shell -Results of jscpd linter (version 3.3.22) -See documentation on https://megalinter.github.io/descriptors/copypaste_jscpd/ ------------------------------------------------ - -[ERROR] .automation/test/copypaste/bad - Clone found (go): - - copypaste_bad_1.go [1:1 - 33:2] (32 lines, 222 tokens) - copypaste_bad_2.go [1:1 - 33:2] - - ┌────────┬────────────────┬─────────────┬──────────────┬──────────────┬──────────────────┬───────────────────┐ - │ Format │ Files analyzed │ Total lines │ Total tokens │ Clones found │ Duplicated lines │ Duplicated tokens │ - ├────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤ - │ go │ 2 │ 64 │ 444 │ 1 │ 32 (50%) │ 222 (50%) │ - ├────────┼────────────────┼─────────────┼──────────────┼──────────────┼──────────────────┼───────────────────┤ - │ Total: │ 2 │ 64 │ 444 │ 1 │ 32 (50%) │ 222 (50%) │ - └────────┴────────────────┴─────────────┴──────────────┴──────────────┴──────────────────┴───────────────────┘ - Found 1 clones. - HTML report saved to report/copy-paste/html/ - ERROR: jscpd found too many duplicates (50%) over threshold (0%) - Error: ERROR: jscpd found too many duplicates (50%) over threshold (0%) - at ThresholdReporter.report (/node_modules/@jscpd/finder/dist/reporters/threshold.js:12:19) - at /node_modules/@jscpd/finder/dist/in-files-detector.js:82:26 - at Array.forEach () - at /node_modules/@jscpd/finder/dist/in-files-detector.js:81:28 - -``` diff --git a/docs/descriptors/cpp.md b/docs/descriptors/cpp.md index dab18df4f20..812c855ceee 100644 --- a/docs/descriptors/cpp.md +++ b/docs/descriptors/cpp.md @@ -1,6 +1,6 @@ - + # C++ ## Linters diff --git a/docs/descriptors/cpp_cpplint.md b/docs/descriptors/cpp_cpplint.md index ead9ebed852..5ffeac837c0 100644 --- a/docs/descriptors/cpp_cpplint.md +++ b/docs/descriptors/cpp_cpplint.md @@ -12,8 +12,8 @@ ## Configuration in MegaLinter -- Enable cpplint by adding `CPP_CPPLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable cpplint by adding `CPP_CPPLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable cpplint by adding `CPP_CPPLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable cpplint by adding `CPP_CPPLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------| @@ -32,10 +32,10 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | ## Behind the scenes @@ -273,30 +273,3 @@ Syntax: cpplint.py [--verbose=#] [--output=emacs|eclipse|vs7|junit|sed|gsed] - PIP packages (Python): - [cpplint](https://pypi.org/project/cpplint) - -### Example success log - -```shell -Results of cpplint linter (version 1.5.4) -See documentation on https://megalinter.github.io/descriptors/cpp_cpplint/ ------------------------------------------------ - -[SUCCESS] .automation/test/cpp/cpp_good_01.cpp - Done processing .automation/test/cpp/cpp_good_01.cpp - -``` - -### Example error log - -```shell -Results of cpplint linter (version 1.5.4) -See documentation on https://megalinter.github.io/descriptors/cpp_cpplint/ ------------------------------------------------ - -[ERROR] .automation/test/cpp/cpp_bad_01.cpp - .automation/test/cpp/cpp_bad_01.cpp:0: No copyright message found. You should have a line: "Copyright [year] " [legal/copyright] [5] - .automation/test/cpp/cpp_bad_01.cpp:6: Could not find a newline character at the end of the file. [whitespace/ending_newline] [5] - Done processing .automation/test/cpp/cpp_bad_01.cpp - Total errors found: 2 - -``` diff --git a/docs/descriptors/csharp.md b/docs/descriptors/csharp.md index c6cab698fd1..f76ad8a2abe 100644 --- a/docs/descriptors/csharp.md +++ b/docs/descriptors/csharp.md @@ -1,6 +1,6 @@ - + # C# ## Linters @@ -36,6 +36,11 @@ ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" ``` - APK packages (Linux): + - [icu-libs](https://pkgs.alpinelinux.org/packages?branch=edge&name=icu-libs) + - [libcurl](https://pkgs.alpinelinux.org/packages?branch=edge&name=libcurl) + - [libintl](https://pkgs.alpinelinux.org/packages?branch=edge&name=libintl) + - [libssl1.1](https://pkgs.alpinelinux.org/packages?branch=edge&name=libssl1.1) + - [libstdc++](https://pkgs.alpinelinux.org/packages?branch=edge&name=libstdc++) - [lttng-ust-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=lttng-ust-dev) - [zlib](https://pkgs.alpinelinux.org/packages?branch=edge&name=zlib) - [zlib-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=zlib-dev) diff --git a/docs/descriptors/csharp_dotnet_format.md b/docs/descriptors/csharp_dotnet_format.md index 42b4e3eaa74..05a99ba5557 100644 --- a/docs/descriptors/csharp_dotnet_format.md +++ b/docs/descriptors/csharp_dotnet_format.md @@ -11,10 +11,10 @@ ## Configuration in MegaLinter -- Enable dotnet-format by adding `CSHARP_DOTNET_FORMAT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable dotnet-format by adding `CSHARP_DOTNET_FORMAT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable dotnet-format by adding `CSHARP_DOTNET_FORMAT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable dotnet-format by adding `CSHARP_DOTNET_FORMAT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `CSHARP_DOTNET_FORMAT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `CSHARP_DOTNET_FORMAT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |--------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -33,10 +33,10 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | ## Behind the scenes @@ -105,31 +105,3 @@ ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" RUN /usr/share/dotnet/dotnet tool install -g dotnet-format ``` - -### Example success log - -```shell -Results of dotnet-format linter (version 4.1.131201) -See documentation on https://megalinter.github.io/descriptors/csharp_dotnet_format/ ------------------------------------------------ - -[SUCCESS] .automation/test/csharp/csharp_good_01.cs - Formatting code files in workspace '.automation/test/csharp'. - Format complete in 1181ms. - -``` - -### Example error log - -```shell -Results of dotnet-format linter (version 4.1.131201) -See documentation on https://megalinter.github.io/descriptors/csharp_dotnet_format/ ------------------------------------------------ - -[ERROR] .automation/test/csharp/csharp_bad_01.cs - Formatting code files in workspace '.automation/test/csharp'. - csharp/csharp_bad_01.cs(1,33): Fix whitespace formatting. - Formatted code file '.automation/test/csharp/csharp_bad_01.cs'. - Format complete in 1295ms. - -``` diff --git a/docs/descriptors/css.md b/docs/descriptors/css.md index 709fdd32f94..0b5a0713168 100644 --- a/docs/descriptors/css.md +++ b/docs/descriptors/css.md @@ -1,6 +1,6 @@ - + # CSS ## Linters diff --git a/docs/descriptors/css_scss_lint.md b/docs/descriptors/css_scss_lint.md index dc91568f180..2be80311d80 100644 --- a/docs/descriptors/css_scss_lint.md +++ b/docs/descriptors/css_scss_lint.md @@ -20,8 +20,8 @@ ## Configuration in MegaLinter -- Enable scss-lint by adding `CSS_SCSS_LINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable scss-lint by adding `CSS_SCSS_LINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable scss-lint by adding `CSS_SCSS_LINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable scss-lint by adding `CSS_SCSS_LINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -44,31 +44,29 @@ Use scss-lint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|---------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-scss-lint](https://atom.io/packages/linter-scss-lint) | [Visit Web Site](https://atom.io/packages/linter-scss-lint){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [scss-lint-plugin](https://plugins.jetbrains.com/plugin/7530-scss-lint) | | -| | [Visual Studio Code](https://code.visualstudio.com/) | [scss-lint](https://marketplace.visualstudio.com/items?itemName=adamwalzer.scss-lint) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/adamwalzer.scss-lint){target=_blank} | +| | [Atom](https://atom.io/) | [linter-scss-lint](https://atom.io/packages/linter-scss-lint) | [Visit Web Site](https://atom.io/packages/linter-scss-lint){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [scss-lint-plugin](https://plugins.jetbrains.com/plugin/7530-scss-lint) | | +| | [Visual Studio Code](https://code.visualstudio.com/) | [scss-lint](https://marketplace.visualstudio.com/items?itemName=adamwalzer.scss-lint) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/adamwalzer.scss-lint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -117,27 +115,3 @@ Usage: scss-lint [options] [scss-files] - GEM packages (Ruby) : - [scss_lint](https://rubygems.org/gems/scss_lint) - -### Example success log - -```shell -Results of scss-lint linter (version 0.59.0) -See documentation on https://megalinter.github.io/descriptors/css_scss_lint/ ------------------------------------------------ - -[SUCCESS] .automation/test/scss/scss_good_01.scss - - -``` - -### Example error log - -```shell -Results of scss-lint linter (version 0.59.0) -See documentation on https://megalinter.github.io/descriptors/css_scss_lint/ ------------------------------------------------ - -[ERROR] .automation/test/scss/scss_bad_01.scss - .automation/test/scss/scss_bad_01.scss:15:1 [E] Syntax: Syntax Error: Invalid CSS after " }": expected selector or at-rule, was "}" - -``` diff --git a/docs/descriptors/css_stylelint.md b/docs/descriptors/css_stylelint.md index 68b40a8f150..e8090f7ce07 100644 --- a/docs/descriptors/css_stylelint.md +++ b/docs/descriptors/css_stylelint.md @@ -14,7 +14,7 @@ - Version in MegaLinter: **14.9.1** - Visit [Official Web Site](https://stylelint.io){target=_blank} - See [How to configure stylelint rules](https://stylelint.io/user-guide/configure){target=_blank} - - If custom `.stylelintrc.json` config file is not found, [.stylelintrc.json](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.stylelintrc.json){target=_blank} will be used + - If custom `.stylelintrc.json` config file is not found, [.stylelintrc.json](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.stylelintrc.json){target=_blank} will be used - See [How to disable stylelint rules in files](https://stylelint.io/user-guide/ignore-code){target=_blank} - See [Index of problems detected by stylelint](https://stylelint.io/user-guide/rules/list){target=_blank} @@ -22,10 +22,10 @@ ## Configuration in MegaLinter -- Enable stylelint by adding `CSS_STYLELINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable stylelint by adding `CSS_STYLELINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable stylelint by adding `CSS_STYLELINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable stylelint by adding `CSS_STYLELINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `CSS_STYLELINT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `CSS_STYLELINT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -48,34 +48,32 @@ Use stylelint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|----------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-stylelint](https://github.com/AtomLinter/linter-stylelint) | [Visit Web Site](https://github.com/AtomLinter/linter-stylelint){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](https://github.com/flycheck/flycheck) | [Visit Web Site](https://github.com/flycheck/flycheck){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-stylelint](https://github.com/SublimeLinter/SublimeLinter-stylelint) | [Visit Web Site](https://github.com/SublimeLinter/SublimeLinter-stylelint){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-stylelint_d](https://github.com/jo-sm/SublimeLinter-contrib-stylelint_d) | [Visit Web Site](https://github.com/jo-sm/SublimeLinter-contrib-stylelint_d){target=_blank} | -| | [vim](https://www.vim.org/) | [ale](https://github.com/dense-analysis/ale) | [Visit Web Site](https://github.com/dense-analysis/ale){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-stylelint](https://marketplace.visualstudio.com/items?itemName=stylelint.vscode-stylelint) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/stylelint.vscode-stylelint){target=_blank} | +| | [Atom](https://atom.io/) | [linter-stylelint](https://github.com/AtomLinter/linter-stylelint) | [Visit Web Site](https://github.com/AtomLinter/linter-stylelint){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](https://github.com/flycheck/flycheck) | [Visit Web Site](https://github.com/flycheck/flycheck){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-stylelint](https://github.com/SublimeLinter/SublimeLinter-stylelint) | [Visit Web Site](https://github.com/SublimeLinter/SublimeLinter-stylelint){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-stylelint_d](https://github.com/jo-sm/SublimeLinter-contrib-stylelint_d) | [Visit Web Site](https://github.com/jo-sm/SublimeLinter-contrib-stylelint_d){target=_blank} | +| | [vim](https://www.vim.org/) | [ale](https://github.com/dense-analysis/ale) | [Visit Web Site](https://github.com/dense-analysis/ale){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-stylelint](https://marketplace.visualstudio.com/items?itemName=stylelint.vscode-stylelint) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/stylelint.vscode-stylelint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -253,38 +251,3 @@ stylelint --fix --config .stylelintrc.json myfile.css myfile2.css myfile3.css - [stylelint-config-standard](https://www.npmjs.com/package/stylelint-config-standard) - [stylelint-config-sass-guidelines](https://www.npmjs.com/package/stylelint-config-sass-guidelines) - [stylelint-scss](https://www.npmjs.com/package/stylelint-scss) - -### Example success log - -```shell -Results of stylelint linter (version 13.8.0) -See documentation on https://megalinter.github.io/descriptors/css_stylelint/ ------------------------------------------------ - -[SUCCESS] .automation/test/css/css_good_01.css - - -``` - -### Example error log - -```shell -Results of stylelint linter (version 13.8.0) -See documentation on https://megalinter.github.io/descriptors/css_stylelint/ ------------------------------------------------ - -[ERROR] .automation/test/css/css_bad_01.css - - .automation/test/css/css_bad_01.css - 2:1 ✖ Expected empty line before comment comment-empty-line-before - 3:1 ✖ Expected empty line before comment comment-empty-line-before - 5:5 ✖ Expected indentation of 2 spaces indentation - 5:33 ✖ Expected "#FFFFFF" to be "#ffffff" color-hex-case - 5:33 ✖ Expected "#FFFFFF" to be "#FFF" color-hex-length - 6:5 ✖ Expected indentation of 2 spaces indentation - 7:5 ✖ Expected indentation of 2 spaces indentation - 8:5 ✖ Expected indentation of 2 spaces indentation - 8:12 ✖ Expected "#AAAAAA" to be "#aaaaaa" color-hex-case - 8:12 ✖ Expected "#AAAAAA" to be "#AAA" color-hex-length - -``` diff --git a/docs/descriptors/dart.md b/docs/descriptors/dart.md index f6148ff9b15..d6df33c3289 100644 --- a/docs/descriptors/dart.md +++ b/docs/descriptors/dart.md @@ -1,6 +1,6 @@ - + # DART ## Linters diff --git a/docs/descriptors/dart_dartanalyzer.md b/docs/descriptors/dart_dartanalyzer.md index 7abc7a9d2f8..57fac33a179 100644 --- a/docs/descriptors/dart_dartanalyzer.md +++ b/docs/descriptors/dart_dartanalyzer.md @@ -13,15 +13,15 @@ - Visit [Official Web Site](https://github.com/dart-lang/sdk/tree/master/pkg/analyzer_cli#readme){target=_blank} - See [How to configure dartanalyzer rules](https://dart.dev/guides/language/analysis-options#the-analysis-options-file){target=_blank} - - If custom `analysis_options.yml` config file is not found, [analysis_options.yml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/analysis_options.yml){target=_blank} will be used + - If custom `analysis_options.yml` config file is not found, [analysis_options.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/analysis_options.yml){target=_blank} will be used - See [How to disable dartanalyzer rules in files](https://dart.dev/guides/language/analysis-options#suppressing-rules-for-a-file){target=_blank} [![sdk - GitHub](https://gh-card.dev/repos/dart-lang/sdk.svg?fullname=)](https://github.com/dart-lang/sdk){target=_blank} ## Configuration in MegaLinter -- Enable dartanalyzer by adding `DART_DARTANALYZER` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable dartanalyzer by adding `DART_DARTANALYZER` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable dartanalyzer by adding `DART_DARTANALYZER` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable dartanalyzer by adding `DART_DARTANALYZER` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -44,17 +44,16 @@ Use dartanalyzer in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|--------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [dart-jetbrains-plugin](https://plugins.jetbrains.com/plugin/6351-dart) | | -| | [Visual Studio Code](https://code.visualstudio.com/) | [dart-code](https://marketplace.visualstudio.com/items?itemName=Dart-Code.dart-code) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/Dart-Code.dart-code){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [dart-jetbrains-plugin](https://plugins.jetbrains.com/plugin/6351-dart) | | +| | [Visual Studio Code](https://code.visualstudio.com/) | [dart-code](https://marketplace.visualstudio.com/items?itemName=Dart-Code.dart-code) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/Dart-Code.dart-code){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:----------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes @@ -115,7 +114,7 @@ For more information, see https://www.dartlang.org/tools/analyzer. ```dockerfile ARG DART_VERSION='2.8.4' ARG GLIBC_VERSION='2.31-r0' -RUN wget --tries=5 -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \ +RUN wget --tries=50 -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \ && wget --tries=5 -q https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk \ && apk add --no-cache glibc-${GLIBC_VERSION}.apk && rm glibc-${GLIBC_VERSION}.apk \ && wget --tries=5 https://storage.googleapis.com/dart-archive/channels/stable/release/${DART_VERSION}/sdk/dartsdk-linux-x64-release.zip -O - -q | unzip -q - \ @@ -125,30 +124,3 @@ RUN wget --tries=5 -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sger ``` - -### Example success log - -```shell -Results of dartanalyzer linter (version 0.0.0) -See documentation on https://megalinter.github.io/descriptors/dart_dartanalyzer/ ------------------------------------------------ - -[SUCCESS] .automation/test/dart/dart_good_1.dart - Analyzing .automation/test/dart/dart_good_1.dart... - No issues found! - -``` - -### Example error log - -```shell -Results of dartanalyzer linter (version 0.0.0) -See documentation on https://megalinter.github.io/descriptors/dart_dartanalyzer/ ------------------------------------------------ - -[ERROR] .automation/test/dart/dart_bad_1.dart - Analyzing .automation/test/dart/dart_bad_1.dart... - lint • Use `;` instead of `{}` for empty constructor bodies. • .automation/test/dart/dart_bad_1.dart:4:25 • empty_constructor_bodies - 1 lint found. - -``` diff --git a/docs/descriptors/dockerfile.md b/docs/descriptors/dockerfile.md index e33c843a918..87051bf7da9 100644 --- a/docs/descriptors/dockerfile.md +++ b/docs/descriptors/dockerfile.md @@ -1,14 +1,13 @@ - + # DOCKERFILE ## Linters -| Linter | Configuration key | Status | -|------------------------------------------------|-----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------| -| [dockerfilelint](dockerfile_dockerfilelint.md) | [DOCKERFILE_DOCKERFILELINT](dockerfile_dockerfilelint.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| [hadolint](dockerfile_hadolint.md) | [DOCKERFILE_HADOLINT](dockerfile_hadolint.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | +| Linter | Configuration key | Status | +|------------------------------------|-----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------| +| [hadolint](dockerfile_hadolint.md) | [DOCKERFILE_HADOLINT](dockerfile_hadolint.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | ## Linted files diff --git a/docs/descriptors/dockerfile_dockerfilelint.md b/docs/descriptors/dockerfile_dockerfilelint.md deleted file mode 100644 index 3a19e32c277..00000000000 --- a/docs/descriptors/dockerfile_dockerfilelint.md +++ /dev/null @@ -1,199 +0,0 @@ - - -# dockerfilelint [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) - -## dockerfilelint documentation - -- Version in MegaLinter: **1.8.0** -- Visit [Official Web Site](https://github.com/replicatedhq/dockerfilelint#readme){target=_blank} -- See [How to configure dockerfilelint rules](https://github.com/replicatedhq/dockerfilelint#configuring){target=_blank} - - If custom `.dockerfilelintrc` config file is not found, [.dockerfilelintrc](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.dockerfilelintrc){target=_blank} will be used -- See [Index of problems detected by dockerfilelint](https://github.com/replicatedhq/dockerfilelint#checks-performed){target=_blank} - -[![dockerfilelint - GitHub](https://gh-card.dev/repos/replicatedhq/dockerfilelint.svg?fullname=)](https://github.com/replicatedhq/dockerfilelint){target=_blank} - -## Configuration in MegaLinter - -- Enable dockerfilelint by adding `DOCKERFILE_DOCKERFILELINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable dockerfilelint by adding `DOCKERFILE_DOCKERFILELINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) - -| Variable | Description | Default value | -|-------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| -| DOCKERFILE_DOCKERFILELINT_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | -| DOCKERFILE_DOCKERFILELINT_FILTER_REGEX_INCLUDE | Custom regex including filter
Ex: `(src\|lib)` | Include every file | -| DOCKERFILE_DOCKERFILELINT_FILTER_REGEX_EXCLUDE | Custom regex excluding filter
Ex: `(test\|examples)` | Exclude no file | -| DOCKERFILE_DOCKERFILELINT_CLI_LINT_MODE | Override default CLI lint mode
- `file`: Calls the linter for each file
- `list_of_files`: Call the linter with the list of files as argument
- `project`: Call the linter from the root of the project | `file` | -| DOCKERFILE_DOCKERFILELINT_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | Exclude every file | -| DOCKERFILE_DOCKERFILELINT_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | `["Dockerfile"]` | -| DOCKERFILE_DOCKERFILELINT_PRE_COMMANDS | List of bash commands to run before the linter | None | -| DOCKERFILE_DOCKERFILELINT_POST_COMMANDS | List of bash commands to run after the linter | None | -| DOCKERFILE_DOCKERFILELINT_CONFIG_FILE | dockerfilelint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.dockerfilelintrc` | -| DOCKERFILE_DOCKERFILELINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | -| DOCKERFILE_DOCKERFILELINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | -| DOCKERFILE_DOCKERFILELINT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | - -## MegaLinter Flavours - -This linter is available in the following flavours - -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | - -## Behind the scenes - -### How are identified applicable files - -- File names (regex): `Dockerfile` - - - -### How the linting is performed - -- dockerfilelint is called one time by identified file - -### Example calls - -```shell -dockerfilelint Dockerfile -``` - - -### Help content - -```shell -Usage: dockerfilelint [files | content..] [options] - -Options: - -o, --output Specify the format to use for output of linting results. Valid values - are `json` or `cli` (default). [string] - -j, --json Output linting results as JSON, equivalent to `-o json`. [boolean] - -c, --config Path for .dockerfilelintrc configuration file [string] - -v, --version Show version number [boolean] - -h, --help Show help [boolean] - -Examples: - dockerfilelint Dockerfile Lint a Dockerfile in the current working directory - - dockerfilelint test/example/* -j Lint all files in the test/example directory and - output results in JSON - - dockerfilelint 'FROM latest' Lint the contents given as a string on the command - line - - dockerfilelint < Dockerfile Lint the contents of Dockerfile via stdin -``` - -### Installation on mega-linter Docker image - -- NPM packages (node.js): - - [dockerfilelint](https://www.npmjs.com/package/dockerfilelint) - -### Example success log - -```shell -Results of dockerfilelint linter (version 1.8.0) -See documentation on https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/ ------------------------------------------------ - -[SUCCESS] .automation/test/docker/good/Dockerfile - - File: .automation/test/docker/good/Dockerfile - Issues: None found 👍 - -[SUCCESS] .automation/test/docker/good/Dockerfile.dev - - File: .automation/test/docker/good/Dockerfile.dev - Issues: None found 👍 - -``` - -### Example error log - -```shell -Results of dockerfilelint linter (version 1.8.0) -See documentation on https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/ ------------------------------------------------ - -[ERROR] .automation/test/docker/bad/Dockerfile - - File: .automation/test/docker/bad/Dockerfile - Issues: 5 - - Line 1: from node:latest - Issue Category Title Description - 1 Clarity Capitalize For clarity and readability, all instructions in a Dockerfile - Dockerfile should be uppercase. - Instructions This is a convention adopted by most of the official images and - greatly improves readability in long Dockerfiles. For an example - of - why this makes a difference, check out the current [redis - Dockerfile](https://github.com/docker-library/redis/blob/b375650fb6 - 9b7db819e90c0033433c705b28656e/3.0/Dockerfile) - and you should be able to easily see the instructions used. - - Line 4: run mkdir -p /usr/src/app - Issue Category Title Description - 2 Clarity Capitalize For clarity and readability, all instructions in a Dockerfile - Dockerfile should be uppercase. - Instructions This is a convention adopted by most of the official images and - greatly improves readability in long Dockerfiles. For an example - of - why this makes a difference, check out the current [redis - Dockerfile](https://github.com/docker-library/redis/blob/b375650fb6 - 9b7db819e90c0033433c705b28656e/3.0/Dockerfile) - and you should be able to easily see the instructions used. - - Line 8: copy package.json /usr/src/app/ /here/there - Issue Category Title Description - 3 Clarity Capitalize For clarity and readability, all instructions in a Dockerfile - Dockerfile should be uppercase. - Instructions This is a convention adopted by most of the official images and - greatly improves readability in long Dockerfiles. For an example - of - why this makes a difference, check out the current [redis - Dockerfile](https://github.com/docker-library/redis/blob/b375650fb6 - 9b7db819e90c0033433c705b28656e/3.0/Dockerfile) - and you should be able to easily see the instructions used. - - Line 9: RUN sudo npm install - Issue Category Title Description - 4 Possible Bug Use Of sudo Is Not Use of `sudo` is not allowed in a Dockerfile. From the official - Allowed document [Best practices for writing - Dockerfiles](https://docs.docker.com/engine/userguide/eng-image/doc - kerfile_best-practices/): - > You should avoid installing or using `sudo` since it has - unpredictable TTY and signal-forwarding behavior that can cause - more problems than it solves. - > If you absolutely need functionality similar to `sudo` (e.g., - initializing the daemon as root but running it as non-root), you - may be able to use `gosu`. - - Line 14: ENtrypoint /tmp/here.sh - Issue Category Title Description - 5 Clarity Capitalize For clarity and readability, all instructions in a Dockerfile - Dockerfile should be uppercase. - Instructions This is a convention adopted by most of the official images and - greatly improves readability in long Dockerfiles. For an example - of - why this makes a difference, check out the current [redis - Dockerfile](https://github.com/docker-library/redis/blob/b375650fb6 - 9b7db819e90c0033433c705b28656e/3.0/Dockerfile) - and you should be able to easily see the instructions used. - -``` diff --git a/docs/descriptors/dockerfile_hadolint.md b/docs/descriptors/dockerfile_hadolint.md index cc3d9b77f42..6bd1a215a06 100644 --- a/docs/descriptors/dockerfile_hadolint.md +++ b/docs/descriptors/dockerfile_hadolint.md @@ -14,8 +14,8 @@ ## Configuration in MegaLinter -- Enable hadolint by adding `DOCKERFILE_HADOLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable hadolint by adding `DOCKERFILE_HADOLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable hadolint by adding `DOCKERFILE_HADOLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable hadolint by adding `DOCKERFILE_HADOLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -38,31 +38,30 @@ Use hadolint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|---------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-hadolint](https://atom.io/packages/linter-hadolint) | [Visit Web Site](https://atom.io/packages/linter-hadolint){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [hadolint](https://marketplace.visualstudio.com/items?itemName=exiasr.hadolint) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/exiasr.hadolint){target=_blank} | +| | [Atom](https://atom.io/) | [linter-hadolint](https://atom.io/packages/linter-hadolint) | [Visit Web Site](https://atom.io/packages/linter-hadolint){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [hadolint](https://marketplace.visualstudio.com/items?itemName=exiasr.hadolint) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/exiasr.hadolint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -152,34 +151,3 @@ FROM hadolint/hadolint:v2.10.0-alpine as hadolint COPY --from=hadolint /bin/hadolint /usr/bin/hadolint ``` - -### Example success log - -```shell -Results of hadolint linter (version 1.19.0) -See documentation on https://megalinter.github.io/descriptors/dockerfile_hadolint/ ------------------------------------------------ - -[SUCCESS] .automation/test/docker/good/Dockerfile - - -[SUCCESS] .automation/test/docker/good/Dockerfile.dev - - -``` - -### Example error log - -```shell -Results of hadolint linter (version 1.19.0) -See documentation on https://megalinter.github.io/descriptors/dockerfile_hadolint/ ------------------------------------------------ - -[ERROR] .automation/test/docker/bad/Dockerfile - .automation/test/docker/bad/Dockerfile:1 DL3007 Using latest is prone to errors if the image will ever update. Pin the version explicitly to a release tag - .automation/test/docker/bad/Dockerfile:8 DL3021 COPY with more than 2 arguments requires the last argument to end with / - .automation/test/docker/bad/Dockerfile:9 DL3004 Do not use sudo as it leads to unpredictable behavior. Use a tool like gosu to enforce root - .automation/test/docker/bad/Dockerfile:11 DL3020 Use COPY instead of ADD for files and folders - .automation/test/docker/bad/Dockerfile:14 DL3025 Use arguments JSON notation for CMD and ENTRYPOINT arguments - -``` diff --git a/docs/descriptors/editorconfig.md b/docs/descriptors/editorconfig.md index 96354d2cd30..3275c1da0da 100644 --- a/docs/descriptors/editorconfig.md +++ b/docs/descriptors/editorconfig.md @@ -1,6 +1,6 @@ - + # EDITORCONFIG ## Linters diff --git a/docs/descriptors/editorconfig_editorconfig_checker.md b/docs/descriptors/editorconfig_editorconfig_checker.md index 18606268733..593db703459 100644 --- a/docs/descriptors/editorconfig_editorconfig_checker.md +++ b/docs/descriptors/editorconfig_editorconfig_checker.md @@ -20,8 +20,8 @@ ## Configuration in MegaLinter -- Enable editorconfig-checker by adding `EDITORCONFIG_EDITORCONFIG_CHECKER` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable editorconfig-checker by adding `EDITORCONFIG_EDITORCONFIG_CHECKER` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable editorconfig-checker by adding `EDITORCONFIG_EDITORCONFIG_CHECKER` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable editorconfig-checker by adding `EDITORCONFIG_EDITORCONFIG_CHECKER` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |---------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -42,23 +42,21 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -128,32 +126,3 @@ FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker COPY --from=editorconfig-checker /usr/bin/ec /usr/bin/editorconfig-checker ``` - -### Example success log - -```shell -Results of editorconfig-checker linter (version 0.0.0) -See documentation on https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/ ------------------------------------------------ - -[SUCCESS] .automation/test/editorconfig-checker/editorconfig-checker_good_1.ext - - -``` - -### Example error log - -```shell -Results of editorconfig-checker linter (version 0.0.0) -See documentation on https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/ ------------------------------------------------ - -[ERROR] .automation/test/editorconfig-checker/editorconfig-checker_bad_1.ext - .automation/test/editorconfig-checker/editorconfig-checker_bad_1.ext: - 1: Wrong amount of left-padding spaces(want multiple of 4) - 2: Wrong amount of left-padding spaces(want multiple of 4) - 3: Wrong amount of left-padding spaces(want multiple of 4) - - 3 errors found - -``` diff --git a/docs/descriptors/env.md b/docs/descriptors/env.md index 22c390ce353..a9435e2d1df 100644 --- a/docs/descriptors/env.md +++ b/docs/descriptors/env.md @@ -1,6 +1,6 @@ - + # ENV ## Linters diff --git a/docs/descriptors/env_dotenv_linter.md b/docs/descriptors/env_dotenv_linter.md index 5424f1b2b63..da6a469167e 100644 --- a/docs/descriptors/env_dotenv_linter.md +++ b/docs/descriptors/env_dotenv_linter.md @@ -19,10 +19,10 @@ ## Configuration in MegaLinter -- Enable dotenv-linter by adding `ENV_DOTENV_LINTER` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable dotenv-linter by adding `ENV_DOTENV_LINTER` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable dotenv-linter by adding `ENV_DOTENV_LINTER` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable dotenv-linter by adding `ENV_DOTENV_LINTER` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `ENV_DOTENV_LINTER` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `ENV_DOTENV_LINTER` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -41,24 +41,22 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -121,35 +119,3 @@ SUBCOMMANDS: RUN wget -q -O - https://raw.githubusercontent.com/dotenv-linter/dotenv-linter/master/install.sh | sh -s ``` - -### Example success log - -```shell -Results of dotenv-linter linter (version 2.2.1) -See documentation on https://megalinter.github.io/descriptors/env_dotenv_linter/ ------------------------------------------------ - -[SUCCESS] .automation/test/env/env_good_1.env - - -``` - -### Example error log - -```shell -Results of dotenv-linter linter (version 2.2.1) -See documentation on https://megalinter.github.io/descriptors/env_dotenv_linter/ ------------------------------------------------ - -[ERROR] .automation/test/env/env_bad_1.env - .automation/test/env/env_bad_1.env:1 LeadingCharacter: Invalid leading character detected - .automation/test/env/env_bad_1.env:2 KeyWithoutValue: The MY_ENV key should be with a value or have an equal sign - .automation/test/env/env_bad_1.env:3 IncorrectDelimiter: The DB-NAME key has incorrect delimiter - .automation/test/env/env_bad_1.env:3 UnorderedKey: The DB-NAME key should go before the LOGGER_LEVEL key - .automation/test/env/env_bad_1.env:4 LowercaseKey: The DEbUG_hTTP key should be in uppercase - .automation/test/env/env_bad_1.env:4 UnorderedKey: The DEbUG_hTTP key should go before the LOGGER_LEVEL key - .automation/test/env/env_bad_1.env:5 UnorderedKey: The DB_NAME key should go before the DEbUG_hTTP key - - Found 7 problems - -``` diff --git a/docs/descriptors/gherkin.md b/docs/descriptors/gherkin.md index 5c8b2bbff68..33be32b1814 100644 --- a/docs/descriptors/gherkin.md +++ b/docs/descriptors/gherkin.md @@ -1,6 +1,6 @@ - + # GHERKIN ## Linters diff --git a/docs/descriptors/gherkin_gherkin_lint.md b/docs/descriptors/gherkin_gherkin_lint.md index 8df065ef483..15394955b55 100644 --- a/docs/descriptors/gherkin_gherkin_lint.md +++ b/docs/descriptors/gherkin_gherkin_lint.md @@ -6,15 +6,15 @@ - Visit [Official Web Site](https://github.com/vsiakka/gherkin-lint#readme){target=_blank} - See [How to configure gherkin-lint rules](https://github.com/vsiakka/gherkin-lint#rule-configuration){target=_blank} - - If custom `.gherkin-lintrc` config file is not found, [.gherkin-lintrc](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.gherkin-lintrc){target=_blank} will be used + - If custom `.gherkin-lintrc` config file is not found, [.gherkin-lintrc](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.gherkin-lintrc){target=_blank} will be used - See [Index of problems detected by gherkin-lint](https://github.com/vsiakka/gherkin-lint#available-rules){target=_blank} [![gherkin-lint - GitHub](https://gh-card.dev/repos/vsiakka/gherkin-lint.svg?fullname=)](https://github.com/vsiakka/gherkin-lint){target=_blank} ## Configuration in MegaLinter -- Enable gherkin-lint by adding `GHERKIN_GHERKIN_LINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable gherkin-lint by adding `GHERKIN_GHERKIN_LINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable gherkin-lint by adding `GHERKIN_GHERKIN_LINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable gherkin-lint by adding `GHERKIN_GHERKIN_LINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |--------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -35,10 +35,10 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | ## Behind the scenes @@ -83,30 +83,3 @@ Options: - NPM packages (node.js): - [gherkin-lint](https://www.npmjs.com/package/gherkin-lint) - -### Example success log - -```shell -Results of gherkin-lint linter (version 0.0.0) -See documentation on https://megalinter.github.io/descriptors/gherkin_gherkin_lint/ ------------------------------------------------ - -[SUCCESS] .automation/test/gherkin/gherkin_good_01.feature - - -``` - -### Example error log - -```shell -Results of gherkin-lint linter (version 0.0.0) -See documentation on https://megalinter.github.io/descriptors/gherkin_gherkin_lint/ ------------------------------------------------ - -[ERROR] .automation/test/gherkin/gherkin_bad_01.feature - .automation/test/gherkin/gherkin_bad_01.feature - 8 Scenario name is already used in: .automation/test/gherkin/gherkin_bad_01.feature:4 no-dupe-scenario-names - 11 Trailing spaces are not allowed no-trailing-spaces - 12 Multiple empty lines are not allowed no-multiple-empty-lines - -``` diff --git a/docs/descriptors/go.md b/docs/descriptors/go.md index 4e5ec0be03c..aadc281523d 100644 --- a/docs/descriptors/go.md +++ b/docs/descriptors/go.md @@ -1,6 +1,6 @@ - + # GO ## Linters diff --git a/docs/descriptors/go_golangci_lint.md b/docs/descriptors/go_golangci_lint.md index 1c7fe226837..b9f072a93a5 100644 --- a/docs/descriptors/go_golangci_lint.md +++ b/docs/descriptors/go_golangci_lint.md @@ -14,7 +14,7 @@ - Version in MegaLinter: **1.46.2** - Visit [Official Web Site](https://golangci-lint.run/){target=_blank} - See [How to configure golangci-lint rules](https://golangci-lint.run/usage/configuration/#config-file){target=_blank} - - If custom `.golangci.yml` config file is not found, [.golangci.yml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.golangci.yml){target=_blank} will be used + - If custom `.golangci.yml` config file is not found, [.golangci.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.golangci.yml){target=_blank} will be used - See [How to disable golangci-lint rules in files](https://golangci-lint.run/usage/false-positives/#nolint){target=_blank} - See [Index of problems detected by golangci-lint](https://golangci-lint.run/usage/linters/){target=_blank} @@ -22,8 +22,8 @@ ## Configuration in MegaLinter -- Enable golangci-lint by adding `GO_GOLANGCI_LINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable golangci-lint by adding `GO_GOLANGCI_LINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable golangci-lint by adding `GO_GOLANGCI_LINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable golangci-lint by adding `GO_GOLANGCI_LINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -46,22 +46,22 @@ Use golangci-lint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [go-plus](https://atom.io/packages/go-plus) | [Visit Web Site](https://atom.io/packages/go-plus){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck-golandci-lint](https://github.com/weijiangan/flycheck-golangci-lint) | [Visit Web Site](https://github.com/weijiangan/flycheck-golangci-lint){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [SpaceMacs](https://github.com/syl20bnr/spacemacs/blob/develop/layers/+lang/go/README.org#pre-requisites) | [Visit Web Site](https://github.com/syl20bnr/spacemacs/blob/develop/layers/+lang/go/README.org#pre-requisites){target=_blank} | -| | goland | [goland](https://www.jetbrains.com/help/go/settings-tools-file-watchers.html) | [Visit Web Site](https://www.jetbrains.com/help/go/settings-tools-file-watchers.html){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-golang-cilint](https://github.com/alecthomas/SublimeLinter-contrib-golang-cilint) | [Visit Web Site](https://github.com/alecthomas/SublimeLinter-contrib-golang-cilint){target=_blank} | -| | [vim](https://www.vim.org/) | [vim-go](https://github.com/fatih/vim-go) | [Visit Web Site](https://github.com/fatih/vim-go){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode.Go](https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/ms-vscode.Go){target=_blank} | +| | [Atom](https://atom.io/) | [go-plus](https://atom.io/packages/go-plus) | [Visit Web Site](https://atom.io/packages/go-plus){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck-golandci-lint](https://github.com/weijiangan/flycheck-golangci-lint) | [Visit Web Site](https://github.com/weijiangan/flycheck-golangci-lint){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [SpaceMacs](https://github.com/syl20bnr/spacemacs/blob/develop/layers/+lang/go/README.org#pre-requisites) | [Visit Web Site](https://github.com/syl20bnr/spacemacs/blob/develop/layers/+lang/go/README.org#pre-requisites){target=_blank} | +| | goland | [goland](https://www.jetbrains.com/help/go/settings-tools-file-watchers.html) | [Visit Web Site](https://www.jetbrains.com/help/go/settings-tools-file-watchers.html){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-golang-cilint](https://github.com/alecthomas/SublimeLinter-contrib-golang-cilint) | [Visit Web Site](https://github.com/alecthomas/SublimeLinter-contrib-golang-cilint){target=_blank} | +| | [vim](https://www.vim.org/) | [vim-go](https://github.com/fatih/vim-go) | [Visit Web Site](https://github.com/fatih/vim-go){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode.Go](https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/ms-vscode.Go){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:--------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:--------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | ## Behind the scenes @@ -126,30 +126,3 @@ RUN wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master ``` - -### Example success log - -```shell -Results of golangci-lint linter (version 1.33.0) -See documentation on https://megalinter.github.io/descriptors/go_golangci_lint/ ------------------------------------------------ - -[SUCCESS] .automation/test/golang/golang_good_01.go - - -``` - -### Example error log - -```shell -Results of golangci-lint linter (version 1.33.0) -See documentation on https://megalinter.github.io/descriptors/go_golangci_lint/ ------------------------------------------------ - -[ERROR] .automation/test/golang/golang_bad_01.go - level=error msg="[linters context] typechecking error: .automation/test/golang/golang_bad_01.go:1:1: expected 'package', found 'if'" - level=warning msg="[runner] Can't run linter goanalysis_metalinter: S1020: failed prerequisites: [(inspect@command-line-arguments, isgenerated@command-line-arguments): analysis skipped: errors in package: [-: .automation/test/golang/golang_bad_01.go:1:1: expected 'package', found 'if']]" - level=warning msg="[runner] Can't run linter unused: buildir: analysis skipped: errors in package: [-: .automation/test/golang/golang_bad_01.go:1:1: expected 'package', found 'if']" - level=error msg="Running error: buildir: analysis skipped: errors in package: [-: .automation/test/golang/golang_bad_01.go:1:1: expected 'package', found 'if']" - -``` diff --git a/docs/descriptors/go_revive.md b/docs/descriptors/go_revive.md index ce874f9915a..d6cad051cfa 100644 --- a/docs/descriptors/go_revive.md +++ b/docs/descriptors/go_revive.md @@ -12,8 +12,8 @@ ## Configuration in MegaLinter -- Enable revive by adding `GO_REVIVE` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable revive by adding `GO_REVIVE` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable revive by adding `GO_REVIVE` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable revive by adding `GO_REVIVE` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -36,18 +36,18 @@ Use revive in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-revive](https://github.com/morphy2k/linter-revive) | [Visit Web Site](https://github.com/morphy2k/linter-revive){target=_blank} | -| | [vim](https://www.vim.org/) | [ale](https://github.com/dense-analysis/ale) | [Visit Web Site](https://github.com/dense-analysis/ale){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode.Go](https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/ms-vscode.Go){target=_blank} | +| | [Atom](https://atom.io/) | [linter-revive](https://github.com/morphy2k/linter-revive) | [Visit Web Site](https://github.com/morphy2k/linter-revive){target=_blank} | +| | [vim](https://www.vim.org/) | [ale](https://github.com/dense-analysis/ale) | [Visit Web Site](https://github.com/dense-analysis/ale){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode.Go](https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/ms-vscode.Go){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:--------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:--------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | ## Behind the scenes diff --git a/docs/descriptors/graphql.md b/docs/descriptors/graphql.md index 28a275065e6..0a859b31ed6 100644 --- a/docs/descriptors/graphql.md +++ b/docs/descriptors/graphql.md @@ -1,6 +1,6 @@ - + # GRAPHQL ## Linters diff --git a/docs/descriptors/graphql_graphql_schema_linter.md b/docs/descriptors/graphql_graphql_schema_linter.md index aaf2b4ff575..45cc0ab88ea 100644 --- a/docs/descriptors/graphql_graphql_schema_linter.md +++ b/docs/descriptors/graphql_graphql_schema_linter.md @@ -14,8 +14,8 @@ ## Configuration in MegaLinter -- Enable graphql-schema-linter by adding `GRAPHQL_GRAPHQL_SCHEMA_LINTER` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable graphql-schema-linter by adding `GRAPHQL_GRAPHQL_SCHEMA_LINTER` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable graphql-schema-linter by adding `GRAPHQL_GRAPHQL_SCHEMA_LINTER` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable graphql-schema-linter by adding `GRAPHQL_GRAPHQL_SCHEMA_LINTER` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -36,23 +36,21 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -99,32 +97,3 @@ Options: - NPM packages (node.js): - [graphql](https://www.npmjs.com/package/graphql) - [graphql-schema-linter](https://www.npmjs.com/package/graphql-schema-linter) - -### Example success log - -```shell -Results of graphql-schema-linter linter (version 1.0.1) -See documentation on https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/ ------------------------------------------------ - -[SUCCESS] .automation/test/graphql/graphql_good_1.graphql - - - ✔ 0 errors detected - -``` - -### Example error log - -```shell -Results of graphql-schema-linter linter (version 1.0.1) -See documentation on https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/ ------------------------------------------------ - -[ERROR] .automation/test/graphql/graphql_bad_1.graphql - .automation/test/graphql/graphql_bad_1.graphql - 8:11 Unknown type "Book". invalid-graphql-schema - - ✖ 1 error detected - -``` diff --git a/docs/descriptors/groovy.md b/docs/descriptors/groovy.md index 1e7013d607e..05596a2a0b7 100644 --- a/docs/descriptors/groovy.md +++ b/docs/descriptors/groovy.md @@ -1,6 +1,6 @@ - + # GROOVY ## Linters diff --git a/docs/descriptors/groovy_npm_groovy_lint.md b/docs/descriptors/groovy_npm_groovy_lint.md index 4d9b7be33a9..e4e5267943a 100644 --- a/docs/descriptors/groovy_npm_groovy_lint.md +++ b/docs/descriptors/groovy_npm_groovy_lint.md @@ -7,7 +7,7 @@ - Version in MegaLinter: **9.5.0** - Visit [Official Web Site](https://nvuillam.github.io/npm-groovy-lint/){target=_blank} - See [How to configure npm-groovy-lint rules](https://github.com/nvuillam/npm-groovy-lint#configuration){target=_blank} - - If custom `.groovylintrc.json` config file is not found, [.groovylintrc.json](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.groovylintrc.json){target=_blank} will be used + - If custom `.groovylintrc.json` config file is not found, [.groovylintrc.json](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.groovylintrc.json){target=_blank} will be used - See [How to disable npm-groovy-lint rules in files](https://github.com/nvuillam/npm-groovy-lint#disabling-rules-in-source){target=_blank} - See [Index of problems detected by npm-groovy-lint](https://codenarc.org/codenarc-rule-index.html){target=_blank} @@ -15,10 +15,10 @@ ## Configuration in MegaLinter -- Enable npm-groovy-lint by adding `GROOVY_NPM_GROOVY_LINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable npm-groovy-lint by adding `GROOVY_NPM_GROOVY_LINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable npm-groovy-lint by adding `GROOVY_NPM_GROOVY_LINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable npm-groovy-lint by adding `GROOVY_NPM_GROOVY_LINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `GROOVY_NPM_GROOVY_LINT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `GROOVY_NPM_GROOVY_LINT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -41,30 +41,28 @@ Use npm-groovy-lint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode Groovy Lint](https://marketplace.visualstudio.com/items?itemName=NicolasVuillamy.vscode-groovy-lint) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/NicolasVuillamy.vscode-groovy-lint){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode Groovy Lint](https://marketplace.visualstudio.com/items?itemName=NicolasVuillamy.vscode-groovy-lint) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/NicolasVuillamy.vscode-groovy-lint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -136,54 +134,7 @@ Note: command-line arguments have priority on config file properties - default: ### Installation on mega-linter Docker image +- APK packages (Linux): + - [openjdk11](https://pkgs.alpinelinux.org/packages?branch=edge&name=openjdk11) - NPM packages (node.js): - [npm-groovy-lint](https://www.npmjs.com/package/npm-groovy-lint) - -### Example success log - -```shell -Results of npm-groovy-lint linter (version 8.0.2) -See documentation on https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/ ------------------------------------------------ - -[SUCCESS] .automation/test/groovy/groovy_good_01.groovy - .automation/test/groovy/groovy_good_01.groovy - - - npm-groovy-lint results in 1 linted files: - ┌─────────┬───────────┬─────────────┐ - │ (index) │ Severity │ Total found │ - ├─────────┼───────────┼─────────────┤ - │ 0 │ 'Error' │ 0 │ - │ 1 │ 'Warning' │ 0 │ - │ 2 │ 'Info' │ 0 │ - └─────────┴───────────┴─────────────┘ - -``` - -### Example error log - -```shell -Results of npm-groovy-lint linter (version 8.0.2) -See documentation on https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/ ------------------------------------------------ - -[ERROR] .automation/test/groovy/groovy_bad_01.groovy - .automation/test/groovy/groovy_bad_01.groovy - 4 error Unexpected input: '$' @ line 4, column 16. NglParseError - 2 info Line ends with whitespace characters TrailingWhitespace - - - npm-groovy-lint results in 1 linted files: - ┌─────────┬───────────┬─────────────┐ - │ (index) │ Severity │ Total found │ - ├─────────┼───────────┼─────────────┤ - │ 0 │ 'Error' │ 1 │ - │ 1 │ 'Warning' │ 0 │ - │ 2 │ 'Info' │ 1 │ - └─────────┴───────────┴─────────────┘ - Failure: 1 error(s) have been found - 0 warning(s) have been found - 1 info(s) have been found - -``` diff --git a/docs/descriptors/html.md b/docs/descriptors/html.md index 219faef2291..28b635d36cc 100644 --- a/docs/descriptors/html.md +++ b/docs/descriptors/html.md @@ -1,6 +1,6 @@ - + # HTML ## Linters diff --git a/docs/descriptors/html_htmlhint.md b/docs/descriptors/html_htmlhint.md index 3164041ca51..69cfc9e8691 100644 --- a/docs/descriptors/html_htmlhint.md +++ b/docs/descriptors/html_htmlhint.md @@ -7,7 +7,7 @@ - Version in MegaLinter: **1.1.4** - Visit [Official Web Site](https://htmlhint.com/){target=_blank} - See [How to configure htmlhint rules](https://htmlhint.com/docs/user-guide/configuration){target=_blank} - - If custom `.htmlhintrc` config file is not found, [.htmlhintrc](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.htmlhintrc){target=_blank} will be used + - If custom `.htmlhintrc` config file is not found, [.htmlhintrc](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.htmlhintrc){target=_blank} will be used - See [How to disable htmlhint rules in files](https://htmlhint.com/docs/user-guide/configuration){target=_blank} - See [Index of problems detected by htmlhint](https://htmlhint.com/docs/user-guide/list-rules){target=_blank} @@ -15,8 +15,8 @@ ## Configuration in MegaLinter -- Enable htmlhint by adding `HTML_HTMLHINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable htmlhint by adding `HTML_HTMLHINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable htmlhint by adding `HTML_HTMLHINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable htmlhint by adding `HTML_HTMLHINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -39,32 +39,30 @@ Use htmlhint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:---------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|----------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [atom-htmlhint](https://github.com/htmlhint/atom-htmlhint) | [Visit Web Site](https://github.com/htmlhint/atom-htmlhint){target=_blank} | -| | [Brackets](http://brackets.io/) | [brackets-htmlhint](https://github.com/htmlhint/brackets-htmlhint) | [Visit Web Site](https://github.com/htmlhint/brackets-htmlhint){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-htmlhint](https://github.com/htmlhint/SublimeLinter-contrib-htmlhint) | [Visit Web Site](https://github.com/htmlhint/SublimeLinter-contrib-htmlhint){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-htmlhint](https://marketplace.visualstudio.com/items?itemName=mkaufman.HTMLHint) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/mkaufman.HTMLHint){target=_blank} | +| | [Atom](https://atom.io/) | [atom-htmlhint](https://github.com/htmlhint/atom-htmlhint) | [Visit Web Site](https://github.com/htmlhint/atom-htmlhint){target=_blank} | +| | [Brackets](http://brackets.io/) | [brackets-htmlhint](https://github.com/htmlhint/brackets-htmlhint) | [Visit Web Site](https://github.com/htmlhint/brackets-htmlhint){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-htmlhint](https://github.com/htmlhint/SublimeLinter-contrib-htmlhint) | [Visit Web Site](https://github.com/htmlhint/SublimeLinter-contrib-htmlhint){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-htmlhint](https://marketplace.visualstudio.com/items?itemName=mkaufman.HTMLHint) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/mkaufman.HTMLHint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -126,219 +124,3 @@ Options: - NPM packages (node.js): - [htmlhint](https://www.npmjs.com/package/htmlhint) - -### Example success log - -```shell -Results of htmlhint linter (version 0.14.2) -See documentation on https://megalinter.github.io/descriptors/html_htmlhint/ ------------------------------------------------ - -[SUCCESS] .automation/test/html/html_good_01.html - - Config loaded: /action/lib/.automation/.htmlhintrc - - Scanned 1 files, no errors found (22 ms). - -``` - -### Example error log - -```shell -Results of htmlhint linter (version 0.14.2) -See documentation on https://megalinter.github.io/descriptors/html_htmlhint/ ------------------------------------------------ - -[ERROR] .automation/test/html/html_bad_01.html - - Config loaded: /action/lib/.automation/.htmlhintrc - - .automation/test/html/html_bad_01.html - L8 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L8 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L8 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L9 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L9 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L9 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L10 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L10 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L10 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L11 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L11 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L11 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L12 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L12 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L12 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L13 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L13 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L13 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L14 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L14 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L14 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L15 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L15 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L15 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L16 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L16 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L16 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L17 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L17 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L17 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L18 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L18 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L18 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L19 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L19 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L19 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L20 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L20 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L20 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L21 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L21 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L21 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L22 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L22 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L22 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L23 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L23 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L23 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L24 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L24 |
- ^ The value of attribute [ bad ] must be in double quotes. (attr-value-double-quotes) - L24 |
- ^ Duplicate of attribute name [ bad ] was found. (attr-no-duplication) - L25 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L26 |
- ^ Special characters must be escaped : [ < ]. (spec-char-escape) - L26 |
- ^ Special characters must be escaped : [ > ]. (spec-char-escape) - L28 |
- ^ Tag must be paired, no start tag: [
] (tag-pair) - L29 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L30 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L31 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L32 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L38 |
- ^ The value of attribute [ class ] must be in double quotes. (attr-value-double-quotes) - L38 |
- ^ The value of attribute [ what ] must be in double quotes. (attr-value-double-quotes) - L38 |
- ^ The value of attribute [ something ] must be in double quotes. (attr-value-double-quotes) - L44 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L50 |
- ^ The value of attribute [ class ] must be in double quotes. (attr-value-double-quotes) - L50 |
- ^ The value of attribute [ what ] must be in double quotes. (attr-value-double-quotes) - L50 |
- ^ The value of attribute [ something ] must be in double quotes. (attr-value-double-quotes) - L56 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L62 |
- ^ The value of attribute [ class ] must be in double quotes. (attr-value-double-quotes) - L62 |
- ^ The value of attribute [ what ] must be in double quotes. (attr-value-double-quotes) - L62 |
- ^ The value of attribute [ something ] must be in double quotes. (attr-value-double-quotes) - L68 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L74 |
- ^ The value of attribute [ class ] must be in double quotes. (attr-value-double-quotes) - L74 |
- ^ The value of attribute [ what ] must be in double quotes. (attr-value-double-quotes) - L74 |
- ^ The value of attribute [ something ] must be in double quotes. (attr-value-double-quotes) - L80 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L81 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L82 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L83 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L84 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L85 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L86 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L87 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L88 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L89 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L90 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L91 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L92 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L93 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L94 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L95 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L96 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - L97 | - ^ Tag must be paired, no start tag: [ ] (tag-pair) - - Scanned 1 files, found 92 errors in 1 files (32 ms) - -``` diff --git a/docs/descriptors/java.md b/docs/descriptors/java.md index ce2b498f2a3..969d3a0e560 100644 --- a/docs/descriptors/java.md +++ b/docs/descriptors/java.md @@ -1,6 +1,6 @@ - + # JAVA ## Linters diff --git a/docs/descriptors/java_checkstyle.md b/docs/descriptors/java_checkstyle.md index 90180a82c4d..abe1895f303 100644 --- a/docs/descriptors/java_checkstyle.md +++ b/docs/descriptors/java_checkstyle.md @@ -14,7 +14,7 @@ - Version in MegaLinter: **10.3** - Visit [Official Web Site](https://checkstyle.sourceforge.io){target=_blank} - See [How to configure checkstyle rules](https://checkstyle.sourceforge.io/config.html#Overview){target=_blank} - - If custom `sun_checks.xml` config file is not found, [sun_checks.xml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/sun_checks.xml){target=_blank} will be used + - If custom `sun_checks.xml` config file is not found, [sun_checks.xml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/sun_checks.xml){target=_blank} will be used - See [How to disable checkstyle rules in files](https://checkstyle.sourceforge.io/config_filters.html#SuppressionCommentFilter){target=_blank} - See [Index of problems detected by checkstyle](https://checkstyle.sourceforge.io/checks.html){target=_blank} @@ -22,8 +22,8 @@ ## Configuration in MegaLinter -- Enable checkstyle by adding `JAVA_CHECKSTYLE` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable checkstyle by adding `JAVA_CHECKSTYLE` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable checkstyle by adding `JAVA_CHECKSTYLE` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable checkstyle by adding `JAVA_CHECKSTYLE` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |---------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -46,18 +46,18 @@ Use checkstyle in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|------------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Eclipse](https://www.eclipse.org/) | [eclipse-cs](https://checkstyle.org/eclipse-cs/#!/) | [Visit Web Site](https://checkstyle.org/eclipse-cs/#!/){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [checkstyle-idea](https://plugins.jetbrains.com/plugin/1065-checkstyle-idea) | | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-checkstyle](https://marketplace.visualstudio.com/items?itemName=shengchen.vscode-checkstyle) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/shengchen.vscode-checkstyle){target=_blank} | +| | [Eclipse](https://www.eclipse.org/) | [eclipse-cs](https://checkstyle.org/eclipse-cs/#!/) | [Visit Web Site](https://checkstyle.org/eclipse-cs/#!/){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [checkstyle-idea](https://plugins.jetbrains.com/plugin/1065-checkstyle-idea) | | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-checkstyle](https://marketplace.visualstudio.com/items?itemName=shengchen.vscode-checkstyle) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/shengchen.vscode-checkstyle){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:----------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:----------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | ## Behind the scenes @@ -199,36 +199,3 @@ RUN CHECKSTYLE_LATEST=$(curl -s https://api.github.com/repos/checkstyle/checksty ``` - -### Example success log - -```shell -Results of checkstyle linter (version 8.38) -See documentation on https://megalinter.github.io/descriptors/java_checkstyle/ ------------------------------------------------ - -[SUCCESS] .automation/test/java/java_good_1.java - Starting audit... - Audit done. - -``` - -### Example error log - -```shell -Results of checkstyle linter (version 8.38) -See documentation on https://megalinter.github.io/descriptors/java_checkstyle/ ------------------------------------------------ - -[ERROR] .automation/test/java/java_bad_1.java - Starting audit... - [ERROR] .automation/test/java/java_bad_1.java:1:1: Utility classes should not have a public or default constructor. [HideUtilityClassConstructor] - [ERROR] .automation/test/java/java_bad_1.java:1:7: Name 'java_bad_1' must match pattern '^[A-Z][a-zA-Z0-9]*$'. [TypeName] - [ERROR] .automation/test/java/java_bad_1.java:2:1: '{' at column 1 should be on the previous line. [LeftCurly] - [ERROR] .automation/test/java/java_bad_1.java:4:29: Parameter args should be final. [FinalParameters] - [ERROR] .automation/test/java/java_bad_1.java:4:40: Array brackets at illegal position. [ArrayTypeStyle] - [ERROR] .automation/test/java/java_bad_1.java:5:5: '{' at column 5 should be on the previous line. [LeftCurly] - Audit done. - Checkstyle ends with 6 errors. - -``` diff --git a/docs/descriptors/java_pmd.md b/docs/descriptors/java_pmd.md new file mode 100644 index 00000000000..3b1d35636e9 --- /dev/null +++ b/docs/descriptors/java_pmd.md @@ -0,0 +1,89 @@ + + +# pmd + +## pmd documentation + +- Version in MegaLinter: **6.40.0** +- Visit [Official Web Site](https://pmd.github.io/){target=_blank} +- See [How to configure pmd rules](https://pmd.github.io/pmd-6.40.0/pmd_userdocs_configuring_rules.html){target=_blank} + - If custom `java-pmd-ruleset.xml` config file is not found, [java-pmd-ruleset.xml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/java-pmd-ruleset.xml){target=_blank} will be used +- See [How to disable pmd rules in files](https://pmd.github.io/pmd-6.40.0/pmd_userdocs_suppressing_warnings.html){target=_blank} +- See [Index of problems detected by pmd](https://pmd.github.io/pmd-6.40.0/pmd_rules_java.html){target=_blank} + +[![pmd - GitHub](https://gh-card.dev/repos/pmd/pmd.svg?fullname=)](https://github.com/pmd/pmd){target=_blank} + +## Configuration in MegaLinter + +- Enable pmd by adding `JAVA_PMD` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Disable pmd by adding `JAVA_PMD` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|--------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| JAVA_PMD_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| JAVA_PMD_FILTER_REGEX_INCLUDE | Custom regex including filter
Ex: `(src\|lib)` | Include every file | +| JAVA_PMD_FILTER_REGEX_EXCLUDE | Custom regex excluding filter
Ex: `(test\|examples)` | Exclude no file | +| JAVA_PMD_CLI_LINT_MODE | Override default CLI lint mode
- `file`: Calls the linter for each file
- `list_of_files`: Call the linter with the list of files as argument
- `project`: Call the linter from the root of the project | `{linter.cli_lint_mode}` | +| JAVA_PMD_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | `[".java"]` | +| JAVA_PMD_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | +| JAVA_PMD_PRE_COMMANDS | List of bash commands to run before the linter | None | +| JAVA_PMD_POST_COMMANDS | List of bash commands to run after the linter | None | +| JAVA_PMD_CONFIG_FILE | pmd configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `java-pmd-ruleset.xml` | +| JAVA_PMD_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| JAVA_PMD_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| JAVA_PMD_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:----------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 96 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | +| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | + +## Behind the scenes + +### How are identified applicable files + +- File extensions: `.java` + + + +### How the linting is performed + +- pmd is called once with the list of files as arguments + +### Example calls + +```shell +pmd -rulesets java-pmd-ruleset.xml -d myfile.java +``` + +```shell +pmd -rulesets java-pmd-ruleset.xml -files /tmp/list-off-files-generated-by-megalinter.txt +``` + +```shell +pmd -rulesets java-pmd-ruleset.xml -dir /path/to/sources +``` + + +### Installation on mega-linter Docker image + +- Dockerfile commands : +```dockerfile +# Parent descriptor install +ENV JAVA_HOME=/usr/lib/jvm/java‑11‑openjdk +ENV PATH="$JAVA_HOME/bin:${PATH}" +# Linter install +ARG PMD_VERSION=6.40.0 && \ +RUN curl -L -o pmd-bin-${PMD_VERSION}.zip https://github.com/pmd/pmd/releases/download/pmd_releases%2F${PMD_VERSION}/pmd-bin-${VERSION}.zip && \ +sha256sum -c pmd-bin-${PMD_VERSION}.zip.sha256 && \ +unzip pmd-bin-${PMD_VERSION}.zip && \ +rm pmd-bin-${PMD_VERSION}.zip && \ +mv /pmd-bin-${VERSION} /usr/bin/pmd + +ENV PATH="${PATH}:/usr/bin/pmd" +``` + diff --git a/docs/descriptors/javascript.md b/docs/descriptors/javascript.md index 338c6578980..c215e2a24e4 100644 --- a/docs/descriptors/javascript.md +++ b/docs/descriptors/javascript.md @@ -1,6 +1,6 @@ - + # JAVASCRIPT ## Linters diff --git a/docs/descriptors/javascript_eslint.md b/docs/descriptors/javascript_eslint.md index 700b1f80d17..b3671736b63 100644 --- a/docs/descriptors/javascript_eslint.md +++ b/docs/descriptors/javascript_eslint.md @@ -25,10 +25,10 @@ You can create it by typing `npx eslint --init` in the root of your repository ## Configuration in MegaLinter -- Enable eslint by adding `JAVASCRIPT_ES` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable eslint by adding `JAVASCRIPT_ES` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable eslint by adding `JAVASCRIPT_ES` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable eslint by adding `JAVASCRIPT_ES` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `JAVASCRIPT_ES` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `JAVASCRIPT_ES` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -51,24 +51,24 @@ Use eslint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:---------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-eslint](https://atom.io/packages/linter-eslint) | [Visit Web Site](https://atom.io/packages/linter-eslint){target=_blank} | -| | [Brackets](http://brackets.io/) | [brackets-eslint](https://github.com/brackets-userland/brackets-eslint) | [Visit Web Site](https://github.com/brackets-userland/brackets-eslint){target=_blank} | -| | [Eclipse](https://www.eclipse.org/) | [Tern-Linter-ESLint](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint) | [Visit Web Site](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](http://www.flycheck.org/en/latest/languages.html#javascript) | [Visit Web Site](http://www.flycheck.org/en/latest/languages.html#javascript){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [ESLint Plugin](https://plugins.jetbrains.com/plugin/7494-eslint) | | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-eslint](https://github.com/roadhump/SublimeLinter-eslint) | [Visit Web Site](https://github.com/roadhump/SublimeLinter-eslint){target=_blank} | -| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | -| | [vim](https://www.vim.org/) | [Syntastic](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript) | [Visit Web Site](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/dbaeumer.vscode-eslint){target=_blank} | +| | [Atom](https://atom.io/) | [linter-eslint](https://atom.io/packages/linter-eslint) | [Visit Web Site](https://atom.io/packages/linter-eslint){target=_blank} | +| | [Brackets](http://brackets.io/) | [brackets-eslint](https://github.com/brackets-userland/brackets-eslint) | [Visit Web Site](https://github.com/brackets-userland/brackets-eslint){target=_blank} | +| | [Eclipse](https://www.eclipse.org/) | [Tern-Linter-ESLint](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint) | [Visit Web Site](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](http://www.flycheck.org/en/latest/languages.html#javascript) | [Visit Web Site](http://www.flycheck.org/en/latest/languages.html#javascript){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [ESLint Plugin](https://plugins.jetbrains.com/plugin/7494-eslint) | | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-eslint](https://github.com/roadhump/SublimeLinter-eslint) | [Visit Web Site](https://github.com/roadhump/SublimeLinter-eslint){target=_blank} | +| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | +| | [vim](https://www.vim.org/) | [Syntastic](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript) | [Visit Web Site](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/dbaeumer.vscode-eslint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes @@ -178,31 +178,4 @@ Miscellaneous: - [babel-eslint](https://www.npmjs.com/package/babel-eslint) - [@babel/core](https://www.npmjs.com/package/@babel/core) - [@babel/eslint-parser](https://www.npmjs.com/package/@babel/eslint-parser) - -### Example success log - -```shell -Results of eslint linter (version 7.15.0) -See documentation on https://megalinter.github.io/descriptors/javascript_eslint/ ------------------------------------------------ - -[SUCCESS] .automation/test/javascript/javascript_good_1.js - - -``` - -### Example error log - -```shell -Results of eslint linter (version 7.15.0) -See documentation on https://megalinter.github.io/descriptors/javascript_eslint/ ------------------------------------------------ - -[ERROR] .automation/test/javascript/javascript_bad_1.js - - .automation/test/javascript/javascript_bad_1.js - 4:40 error Parsing error: Unterminated regular expression - - ✖ 1 problem (1 error, 0 warnings) - -``` + - [@microsoft/eslint-formatter-sarif](https://www.npmjs.com/package/@microsoft/eslint-formatter-sarif) diff --git a/docs/descriptors/javascript_prettier.md b/docs/descriptors/javascript_prettier.md index 494005683ae..2a37b7670b4 100644 --- a/docs/descriptors/javascript_prettier.md +++ b/docs/descriptors/javascript_prettier.md @@ -21,10 +21,10 @@ ## Configuration in MegaLinter -- Enable prettier by adding `JAVASCRIPT_PRETTIER` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable prettier by adding `JAVASCRIPT_PRETTIER` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable prettier by adding `JAVASCRIPT_PRETTIER` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable prettier by adding `JAVASCRIPT_PRETTIER` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `JAVASCRIPT_PRETTIER` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `JAVASCRIPT_PRETTIER` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |-------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -48,26 +48,26 @@ Use prettier in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-----------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [prettier-atom](https://github.com/prettier/prettier-atom) | [Visit Web Site](https://github.com/prettier/prettier-atom){target=_blank} | -| | [Atom](https://atom.io/) | [atom-mprettier](https://github.com/t9md/atom-mprettier) | [Visit Web Site](https://github.com/t9md/atom-mprettier){target=_blank} | -| | [Atom](https://atom.io/) | [atom-miniprettier](https://github.com/duailibe/atom-miniprettier) | [Visit Web Site](https://github.com/duailibe/atom-miniprettier){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier-emacs](https://github.com/prettier/prettier-emacs) | [Visit Web Site](https://github.com/prettier/prettier-emacs){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier.el](https://github.com/jscheid/prettier.el) | [Visit Web Site](https://github.com/jscheid/prettier.el){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [apheleia](https://github.com/raxod502/apheleia) | [Visit Web Site](https://github.com/raxod502/apheleia){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://prettier.io/docs/en/webstorm.html) | [Visit Web Site](https://prettier.io/docs/en/webstorm.html){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [JsPrettier](https://packagecontrol.io/packages/JsPrettier) | [Visit Web Site](https://packagecontrol.io/packages/JsPrettier){target=_blank} | -| | [vim](https://www.vim.org/) | [vim-prettier](https://github.com/prettier/vim-prettier) | [Visit Web Site](https://github.com/prettier/vim-prettier){target=_blank} | -| | visual_studio | [JavaScriptPrettier](https://github.com/madskristensen/JavaScriptPrettier) | [Visit Web Site](https://github.com/madskristensen/JavaScriptPrettier){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/esbenp.prettier-vscode){target=_blank} | +| | [Atom](https://atom.io/) | [prettier-atom](https://github.com/prettier/prettier-atom) | [Visit Web Site](https://github.com/prettier/prettier-atom){target=_blank} | +| | [Atom](https://atom.io/) | [atom-mprettier](https://github.com/t9md/atom-mprettier) | [Visit Web Site](https://github.com/t9md/atom-mprettier){target=_blank} | +| | [Atom](https://atom.io/) | [atom-miniprettier](https://github.com/duailibe/atom-miniprettier) | [Visit Web Site](https://github.com/duailibe/atom-miniprettier){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier-emacs](https://github.com/prettier/prettier-emacs) | [Visit Web Site](https://github.com/prettier/prettier-emacs){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier.el](https://github.com/jscheid/prettier.el) | [Visit Web Site](https://github.com/jscheid/prettier.el){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [apheleia](https://github.com/raxod502/apheleia) | [Visit Web Site](https://github.com/raxod502/apheleia){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://prettier.io/docs/en/webstorm.html) | [Visit Web Site](https://prettier.io/docs/en/webstorm.html){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [JsPrettier](https://packagecontrol.io/packages/JsPrettier) | [Visit Web Site](https://packagecontrol.io/packages/JsPrettier){target=_blank} | +| | [vim](https://www.vim.org/) | [vim-prettier](https://github.com/prettier/vim-prettier) | [Visit Web Site](https://github.com/prettier/vim-prettier){target=_blank} | +| | visual_studio | [JavaScriptPrettier](https://github.com/madskristensen/JavaScriptPrettier) | [Visit Web Site](https://github.com/madskristensen/JavaScriptPrettier){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/esbenp.prettier-vscode){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes diff --git a/docs/descriptors/javascript_standard.md b/docs/descriptors/javascript_standard.md index 4c2d417d57a..8896f6c9310 100644 --- a/docs/descriptors/javascript_standard.md +++ b/docs/descriptors/javascript_standard.md @@ -19,10 +19,10 @@ ## Configuration in MegaLinter -- Enable standard by adding `JAVASCRIPT_STANDARD` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable standard by adding `JAVASCRIPT_STANDARD` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable standard by adding `JAVASCRIPT_STANDARD` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable standard by adding `JAVASCRIPT_STANDARD` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `JAVASCRIPT_STANDARD` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `JAVASCRIPT_STANDARD` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |-------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -44,23 +44,23 @@ Use standard in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:---------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-----------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-js-standard](https://atom.io/packages/linter-js-standard) | [Visit Web Site](https://atom.io/packages/linter-js-standard){target=_blank} | -| | [Atom](https://atom.io/) | [linter-js-standard-engine](https://atom.io/packages/linter-js-standard-engine) | [Visit Web Site](https://atom.io/packages/linter-js-standard-engine){target=_blank} | -| | [Atom](https://atom.io/) | [standard-formatter](https://atom.io/packages/standard-formatter) | [Visit Web Site](https://atom.io/packages/standard-formatter){target=_blank} | -| | [Brackets](http://brackets.io/) | [brackets-standard](https://github.com/ishamf/brackets-standard/) | [Visit Web Site](https://github.com/ishamf/brackets-standard/){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://blog.jetbrains.com/webstorm/2017/01/webstorm-2017-1-eap-171-2272/) | [Visit Web Site](https://blog.jetbrains.com/webstorm/2017/01/webstorm-2017-1-eap-171-2272/){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-standard](https://packagecontrol.io/packages/SublimeLinter-contrib-standard) | [Visit Web Site](https://packagecontrol.io/packages/SublimeLinter-contrib-standard){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [StandardFormat](https://packagecontrol.io/packages/StandardFormat) | [Visit Web Site](https://packagecontrol.io/packages/StandardFormat){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-standardjs](https://marketplace.visualstudio.com/items?itemName=chenxsan.vscode-standardjs) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/chenxsan.vscode-standardjs){target=_blank} | +| | [Atom](https://atom.io/) | [linter-js-standard](https://atom.io/packages/linter-js-standard) | [Visit Web Site](https://atom.io/packages/linter-js-standard){target=_blank} | +| | [Atom](https://atom.io/) | [linter-js-standard-engine](https://atom.io/packages/linter-js-standard-engine) | [Visit Web Site](https://atom.io/packages/linter-js-standard-engine){target=_blank} | +| | [Atom](https://atom.io/) | [standard-formatter](https://atom.io/packages/standard-formatter) | [Visit Web Site](https://atom.io/packages/standard-formatter){target=_blank} | +| | [Brackets](http://brackets.io/) | [brackets-standard](https://github.com/ishamf/brackets-standard/) | [Visit Web Site](https://github.com/ishamf/brackets-standard/){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://blog.jetbrains.com/webstorm/2017/01/webstorm-2017-1-eap-171-2272/) | [Visit Web Site](https://blog.jetbrains.com/webstorm/2017/01/webstorm-2017-1-eap-171-2272/){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-standard](https://packagecontrol.io/packages/SublimeLinter-contrib-standard) | [Visit Web Site](https://packagecontrol.io/packages/SublimeLinter-contrib-standard){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [StandardFormat](https://packagecontrol.io/packages/StandardFormat) | [Visit Web Site](https://packagecontrol.io/packages/StandardFormat){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-standardjs](https://marketplace.visualstudio.com/items?itemName=chenxsan.vscode-standardjs) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/chenxsan.vscode-standardjs){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes @@ -120,28 +120,3 @@ Flags (advanced): - NPM packages (node.js): - [standard@15.0.1](https://www.npmjs.com/package/standard) - -### Example success log - -```shell -Results of standard linter (version 15.0.1) -See documentation on https://megalinter.github.io/descriptors/javascript_standard/ ------------------------------------------------ - -[SUCCESS] .automation/test/javascript/javascript_good_1.js - - -``` - -### Example error log - -```shell -Results of standard linter (version 15.0.1) -See documentation on https://megalinter.github.io/descriptors/javascript_standard/ ------------------------------------------------ - -[ERROR] .automation/test/javascript/javascript_bad_1.js - standard: Use JavaScript Standard Style (https://standardjs.com) - .automation/test/javascript/javascript_bad_1.js:4:40: Parsing error: Unterminated regular expression - -``` diff --git a/docs/descriptors/json.md b/docs/descriptors/json.md index debb8e0a027..c63ac82d002 100644 --- a/docs/descriptors/json.md +++ b/docs/descriptors/json.md @@ -1,6 +1,6 @@ - + # JSON ## Linters diff --git a/docs/descriptors/json_eslint_plugin_jsonc.md b/docs/descriptors/json_eslint_plugin_jsonc.md index b84986839ac..2f4b5441718 100644 --- a/docs/descriptors/json_eslint_plugin_jsonc.md +++ b/docs/descriptors/json_eslint_plugin_jsonc.md @@ -71,7 +71,7 @@ DISABLE_LINTERS: - Version in MegaLinter: **2.3.0** - Visit [Official Web Site](https://ota-meshi.github.io/eslint-plugin-jsonc/){target=_blank} - See [How to configure eslint-plugin-jsonc rules](https://eslint.org/docs/user-guide/configuring){target=_blank} - - If custom `.eslintrc-json.json` config file is not found, [.eslintrc-json.json](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.eslintrc-json.json){target=_blank} will be used + - If custom `.eslintrc-json.json` config file is not found, [.eslintrc-json.json](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.eslintrc-json.json){target=_blank} will be used - See [How to disable eslint-plugin-jsonc rules in files](https://eslint.org/docs/user-guide/configuring#disabling-rules-with-inline-comments){target=_blank} - See [Index of problems detected by eslint-plugin-jsonc](https://ota-meshi.github.io/eslint-plugin-jsonc/rules/){target=_blank} @@ -79,10 +79,10 @@ DISABLE_LINTERS: ## Configuration in MegaLinter -- Enable eslint-plugin-jsonc by adding `JSON_ESLINT_PLUGIN_JSONC` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable eslint-plugin-jsonc by adding `JSON_ESLINT_PLUGIN_JSONC` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable eslint-plugin-jsonc by adding `JSON_ESLINT_PLUGIN_JSONC` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable eslint-plugin-jsonc by adding `JSON_ESLINT_PLUGIN_JSONC` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `JSON_ESLINT_PLUGIN_JSONC` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `JSON_ESLINT_PLUGIN_JSONC` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -105,30 +105,28 @@ Use eslint-plugin-jsonc in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|--------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------:| -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-eslint](https://github.com/ota-meshi/eslint-plugin-jsonc#visual-studio-code) | [Visit Web Site](https://github.com/ota-meshi/eslint-plugin-jsonc#visual-studio-code){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-eslint](https://github.com/ota-meshi/eslint-plugin-jsonc#visual-studio-code) | [Visit Web Site](https://github.com/ota-meshi/eslint-plugin-jsonc#visual-studio-code){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -234,3 +232,4 @@ Miscellaneous: - NPM packages (node.js): - [eslint](https://www.npmjs.com/package/eslint) - [eslint-plugin-jsonc](https://www.npmjs.com/package/eslint-plugin-jsonc) + - [@microsoft/eslint-formatter-sarif](https://www.npmjs.com/package/@microsoft/eslint-formatter-sarif) diff --git a/docs/descriptors/json_jsonlint.md b/docs/descriptors/json_jsonlint.md index 76fefc5a806..576a8375a26 100644 --- a/docs/descriptors/json_jsonlint.md +++ b/docs/descriptors/json_jsonlint.md @@ -11,8 +11,8 @@ ## Configuration in MegaLinter -- Enable jsonlint by adding `JSON_JSONLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable jsonlint by adding `JSON_JSONLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable jsonlint by adding `JSON_JSONLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable jsonlint by adding `JSON_JSONLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -31,24 +31,22 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -94,49 +92,3 @@ Options: - NPM packages (node.js): - [jsonlint](https://www.npmjs.com/package/jsonlint) - -### Example success log - -```shell -Results of jsonlint linter (version 1.6.3) -See documentation on https://megalinter.github.io/descriptors/json_jsonlint/ ------------------------------------------------ - -[SUCCESS] .automation/test/json/json_good_1.json - { - "arrow_spacing": { - "level": "ignore" - }, - "braces_spacing": { - "level": "ignore", - "spaces": 0, - "empty_object_spaces": 0 - } - } - -``` - -### Example error log - -```shell -Results of jsonlint linter (version 1.6.3) -See documentation on https://megalinter.github.io/descriptors/json_jsonlint/ ------------------------------------------------ - -[ERROR] .automation/test/json/json_bad_1.json - Error: Parse error on line 6: - ...ng": { "level": 'ignore', "space - ----------------------^ - Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined' - at Object.parseError (/node_modules/jsonlint/lib/jsonlint.js:55:11) - at Object.parse (/node_modules/jsonlint/lib/jsonlint.js:132:22) - at parse (/node_modules/jsonlint/lib/cli.js:82:14) - at main (/node_modules/jsonlint/lib/cli.js:135:14) - at Object. (/node_modules/jsonlint/lib/cli.js:179:1) - at Module._compile (internal/modules/cjs/loader.js:1201:30) - at Object.Module._extensions..js (internal/modules/cjs/loader.js:1221:10) - at Module.load (internal/modules/cjs/loader.js:1050:32) - at Function.Module._load (internal/modules/cjs/loader.js:938:14) - at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12) - -``` diff --git a/docs/descriptors/json_prettier.md b/docs/descriptors/json_prettier.md index 13a19bf4fb9..5c666a9ab83 100644 --- a/docs/descriptors/json_prettier.md +++ b/docs/descriptors/json_prettier.md @@ -21,10 +21,10 @@ ## Configuration in MegaLinter -- Enable prettier by adding `JSON_PRETTIER` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable prettier by adding `JSON_PRETTIER` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable prettier by adding `JSON_PRETTIER` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable prettier by adding `JSON_PRETTIER` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `JSON_PRETTIER` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `JSON_PRETTIER` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -47,40 +47,38 @@ Use prettier in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-----------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [prettier-atom](https://github.com/prettier/prettier-atom) | [Visit Web Site](https://github.com/prettier/prettier-atom){target=_blank} | -| | [Atom](https://atom.io/) | [atom-mprettier](https://github.com/t9md/atom-mprettier) | [Visit Web Site](https://github.com/t9md/atom-mprettier){target=_blank} | -| | [Atom](https://atom.io/) | [atom-miniprettier](https://github.com/duailibe/atom-miniprettier) | [Visit Web Site](https://github.com/duailibe/atom-miniprettier){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier-emacs](https://github.com/prettier/prettier-emacs) | [Visit Web Site](https://github.com/prettier/prettier-emacs){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier.el](https://github.com/jscheid/prettier.el) | [Visit Web Site](https://github.com/jscheid/prettier.el){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [apheleia](https://github.com/raxod502/apheleia) | [Visit Web Site](https://github.com/raxod502/apheleia){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://prettier.io/docs/en/webstorm.html) | [Visit Web Site](https://prettier.io/docs/en/webstorm.html){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [JsPrettier](https://packagecontrol.io/packages/JsPrettier) | [Visit Web Site](https://packagecontrol.io/packages/JsPrettier){target=_blank} | -| | [vim](https://www.vim.org/) | [vim-prettier](https://github.com/prettier/vim-prettier) | [Visit Web Site](https://github.com/prettier/vim-prettier){target=_blank} | -| | visual_studio | [JavaScriptPrettier](https://github.com/madskristensen/JavaScriptPrettier) | [Visit Web Site](https://github.com/madskristensen/JavaScriptPrettier){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/esbenp.prettier-vscode){target=_blank} | +| | [Atom](https://atom.io/) | [prettier-atom](https://github.com/prettier/prettier-atom) | [Visit Web Site](https://github.com/prettier/prettier-atom){target=_blank} | +| | [Atom](https://atom.io/) | [atom-mprettier](https://github.com/t9md/atom-mprettier) | [Visit Web Site](https://github.com/t9md/atom-mprettier){target=_blank} | +| | [Atom](https://atom.io/) | [atom-miniprettier](https://github.com/duailibe/atom-miniprettier) | [Visit Web Site](https://github.com/duailibe/atom-miniprettier){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier-emacs](https://github.com/prettier/prettier-emacs) | [Visit Web Site](https://github.com/prettier/prettier-emacs){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier.el](https://github.com/jscheid/prettier.el) | [Visit Web Site](https://github.com/jscheid/prettier.el){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [apheleia](https://github.com/raxod502/apheleia) | [Visit Web Site](https://github.com/raxod502/apheleia){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://prettier.io/docs/en/webstorm.html) | [Visit Web Site](https://prettier.io/docs/en/webstorm.html){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [JsPrettier](https://packagecontrol.io/packages/JsPrettier) | [Visit Web Site](https://packagecontrol.io/packages/JsPrettier){target=_blank} | +| | [vim](https://www.vim.org/) | [vim-prettier](https://github.com/prettier/vim-prettier) | [Visit Web Site](https://github.com/prettier/vim-prettier){target=_blank} | +| | visual_studio | [JavaScriptPrettier](https://github.com/madskristensen/JavaScriptPrettier) | [Visit Web Site](https://github.com/madskristensen/JavaScriptPrettier){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/esbenp.prettier-vscode){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/json_v8r.md b/docs/descriptors/json_v8r.md index af7ed094776..6a7899d756f 100644 --- a/docs/descriptors/json_v8r.md +++ b/docs/descriptors/json_v8r.md @@ -14,15 +14,15 @@ v8r checks the validity of JSON/YAML files if they have a matching schema define ## Configuration in MegaLinter -- Enable v8r by adding `JSON_V8R` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable v8r by adding `JSON_V8R` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable v8r by adding `JSON_V8R` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable v8r by adding `JSON_V8R` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |--------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| | JSON_V8R_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | | JSON_V8R_FILTER_REGEX_INCLUDE | Custom regex including filter
Ex: `(src\|lib)` | Include every file | | JSON_V8R_FILTER_REGEX_EXCLUDE | Custom regex excluding filter
Ex: `(test\|examples)` | Exclude no file | -| JSON_V8R_CLI_LINT_MODE | Override default CLI lint mode
- `file`: Calls the linter for each file
- `list_of_files`: Call the linter with the list of files as argument
- `project`: Call the linter from the root of the project | `file` | +| JSON_V8R_CLI_LINT_MODE | Override default CLI lint mode
- `file`: Calls the linter for each file
- `list_of_files`: Call the linter with the list of files as argument
- `project`: Call the linter from the root of the project | `list_of_files` | | JSON_V8R_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | `[".json"]` | | JSON_V8R_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | | JSON_V8R_PRE_COMMANDS | List of bash commands to run before the linter | None | @@ -36,33 +36,31 @@ Use v8r in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|----------------------------------------------------------------|:-----------------------------------------------------------------------------:| -| | [Eclipse](https://www.eclipse.org/) | [native support](https://www.eclipse.org/) | [Visit Web Site](https://www.eclipse.org/){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://www.jetbrains.com/products/#type=ide) | [Visit Web Site](https://www.jetbrains.com/products/#type=ide){target=_blank} | -| | [vim](https://www.vim.org/) | [vison](https://github.com/Quramy/vison) | [Visit Web Site](https://github.com/Quramy/vison){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [native support](https://code.visualstudio.com/) | [Visit Web Site](https://code.visualstudio.com/){target=_blank} | +| | [Eclipse](https://www.eclipse.org/) | [native support](https://www.eclipse.org/) | [Visit Web Site](https://www.eclipse.org/){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://www.jetbrains.com/products/#type=ide) | [Visit Web Site](https://www.jetbrains.com/products/#type=ide){target=_blank} | +| | [vim](https://www.vim.org/) | [vison](https://github.com/Quramy/vison) | [Visit Web Site](https://github.com/Quramy/vison){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [native support](https://code.visualstudio.com/) | [Visit Web Site](https://code.visualstudio.com/){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -74,7 +72,7 @@ This linter is available in the following flavours ### How the linting is performed -- v8r is called one time by identified file +- v8r is called once with the list of files as arguments ### Example calls @@ -115,4 +113,4 @@ Options: ### Installation on mega-linter Docker image - NPM packages (node.js): - - [v8r@0.6.1](https://www.npmjs.com/package/v8r) + - [v8r](https://www.npmjs.com/package/v8r) diff --git a/docs/descriptors/jsx.md b/docs/descriptors/jsx.md index 1b852457664..bd93d727026 100644 --- a/docs/descriptors/jsx.md +++ b/docs/descriptors/jsx.md @@ -1,6 +1,6 @@ - + # JSX ## Linters diff --git a/docs/descriptors/jsx_eslint.md b/docs/descriptors/jsx_eslint.md index 2365f7c0135..03bc051cd00 100644 --- a/docs/descriptors/jsx_eslint.md +++ b/docs/descriptors/jsx_eslint.md @@ -24,10 +24,10 @@ You can create it by typing `npx eslint --init` in the root of your repository ## Configuration in MegaLinter -- Enable eslint by adding `JSX_ESLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable eslint by adding `JSX_ESLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable eslint by adding `JSX_ESLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable eslint by adding `JSX_ESLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `JSX_ESLINT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `JSX_ESLINT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -50,24 +50,24 @@ Use eslint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:---------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-eslint](https://atom.io/packages/linter-eslint) | [Visit Web Site](https://atom.io/packages/linter-eslint){target=_blank} | -| | [Brackets](http://brackets.io/) | [brackets-eslint](https://github.com/brackets-userland/brackets-eslint) | [Visit Web Site](https://github.com/brackets-userland/brackets-eslint){target=_blank} | -| | [Eclipse](https://www.eclipse.org/) | [Tern-Linter-ESLint](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint) | [Visit Web Site](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](http://www.flycheck.org/en/latest/languages.html#javascript) | [Visit Web Site](http://www.flycheck.org/en/latest/languages.html#javascript){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [ESLint Plugin](https://plugins.jetbrains.com/plugin/7494-eslint) | | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-eslint](https://github.com/roadhump/SublimeLinter-eslint) | [Visit Web Site](https://github.com/roadhump/SublimeLinter-eslint){target=_blank} | -| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | -| | [vim](https://www.vim.org/) | [Syntastic](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript) | [Visit Web Site](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/dbaeumer.vscode-eslint){target=_blank} | +| | [Atom](https://atom.io/) | [linter-eslint](https://atom.io/packages/linter-eslint) | [Visit Web Site](https://atom.io/packages/linter-eslint){target=_blank} | +| | [Brackets](http://brackets.io/) | [brackets-eslint](https://github.com/brackets-userland/brackets-eslint) | [Visit Web Site](https://github.com/brackets-userland/brackets-eslint){target=_blank} | +| | [Eclipse](https://www.eclipse.org/) | [Tern-Linter-ESLint](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint) | [Visit Web Site](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](http://www.flycheck.org/en/latest/languages.html#javascript) | [Visit Web Site](http://www.flycheck.org/en/latest/languages.html#javascript){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [ESLint Plugin](https://plugins.jetbrains.com/plugin/7494-eslint) | | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-eslint](https://github.com/roadhump/SublimeLinter-eslint) | [Visit Web Site](https://github.com/roadhump/SublimeLinter-eslint){target=_blank} | +| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | +| | [vim](https://www.vim.org/) | [Syntastic](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript) | [Visit Web Site](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/dbaeumer.vscode-eslint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes @@ -167,31 +167,4 @@ Miscellaneous: - [eslint](https://www.npmjs.com/package/eslint) - [eslint-plugin-react](https://www.npmjs.com/package/eslint-plugin-react) - [eslint-plugin-jsx-a11y](https://www.npmjs.com/package/eslint-plugin-jsx-a11y) - -### Example success log - -```shell -Results of eslint linter (version 7.15.0) -See documentation on https://megalinter.github.io/descriptors/jsx_eslint/ ------------------------------------------------ - -[SUCCESS] .automation/test/jsx/jsx_good_1.jsx - Warning: React version not specified in eslint-plugin-react settings. See https://github.com/yannickcr/eslint-plugin-react#configuration . - -``` - -### Example error log - -```shell -Results of eslint linter (version 7.15.0) -See documentation on https://megalinter.github.io/descriptors/jsx_eslint/ ------------------------------------------------ - -[ERROR] .automation/test/jsx/jsx_bad_1.jsx - - .automation/test/jsx/jsx_bad_1.jsx - 8:1 error Parsing error: Unexpected token const - - ✖ 1 problem (1 error, 0 warnings) - -``` + - [@microsoft/eslint-formatter-sarif](https://www.npmjs.com/package/@microsoft/eslint-formatter-sarif) diff --git a/docs/descriptors/kotlin.md b/docs/descriptors/kotlin.md index 34bde2d0010..a13b36dd9c2 100644 --- a/docs/descriptors/kotlin.md +++ b/docs/descriptors/kotlin.md @@ -1,6 +1,6 @@ - + # KOTLIN ## Linters @@ -22,3 +22,10 @@ | KOTLIN_FILTER_REGEX_INCLUDE | Custom regex including filter | | | KOTLIN_FILTER_REGEX_EXCLUDE | Custom regex excluding filter | | + +## Behind the scenes + +### Installation + +- APK packages (Linux): + - [openjdk11](https://pkgs.alpinelinux.org/packages?branch=edge&name=openjdk11) diff --git a/docs/descriptors/kotlin_ktlint.md b/docs/descriptors/kotlin_ktlint.md index 40cb0d9012f..1e7fdeb575d 100644 --- a/docs/descriptors/kotlin_ktlint.md +++ b/docs/descriptors/kotlin_ktlint.md @@ -19,10 +19,10 @@ ## Configuration in MegaLinter -- Enable ktlint by adding `KOTLIN_KTLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable ktlint by adding `KOTLIN_KTLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable ktlint by adding `KOTLIN_KTLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable ktlint by adding `KOTLIN_KTLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `KOTLIN_KTLINT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `KOTLIN_KTLINT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -43,30 +43,28 @@ Use ktlint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------|-------------------------------------------------------------|:-------------------------------------------------------------------------:| -| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck-kotlin](https://github.com/whirm/flycheck-kotlin) | [Visit Web Site](https://github.com/whirm/flycheck-kotlin){target=_blank} | -| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck-kotlin](https://github.com/whirm/flycheck-kotlin) | [Visit Web Site](https://github.com/whirm/flycheck-kotlin){target=_blank} | +| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -197,31 +195,3 @@ RUN curl --retry 5 --retry-delay 5 -sSLO https://github.com/pinterest/ktlint/rel ``` - -### Example success log - -```shell -Results of ktlint linter (version 0.40.0) -See documentation on https://megalinter.github.io/descriptors/kotlin_ktlint/ ------------------------------------------------ - -[SUCCESS] .automation/test/kotlin/kotlint_good_1.kt - - -``` - -### Example error log - -```shell -Results of ktlint linter (version 0.40.0) -See documentation on https://megalinter.github.io/descriptors/kotlin_ktlint/ ------------------------------------------------ - -[ERROR] .automation/test/kotlin/kotlin_bad_1.kt - .automation/test/kotlin/kotlin_bad_1.kt:1:1: File must end with a newline (\n) - .automation/test/kotlin/kotlin_bad_1.kt:2:20: Unnecessary semicolon - .automation/test/kotlin/kotlin_bad_1.kt:3:16: Redundant curly braces - .automation/test/kotlin/kotlin_bad_1.kt:3:27: Unnecessary semicolon - .automation/test/kotlin/kotlin_bad_1.kt:5:15: Unnecessary semicolon - -``` diff --git a/docs/descriptors/kubernetes.md b/docs/descriptors/kubernetes.md index 5376fda8ea4..d7dd163fbd5 100644 --- a/docs/descriptors/kubernetes.md +++ b/docs/descriptors/kubernetes.md @@ -1,6 +1,6 @@ - + # KUBERNETES ## Linters diff --git a/docs/descriptors/kubernetes_kubeconform.md b/docs/descriptors/kubernetes_kubeconform.md index aff8cc84e8b..9bab680c3e9 100644 --- a/docs/descriptors/kubernetes_kubeconform.md +++ b/docs/descriptors/kubernetes_kubeconform.md @@ -20,8 +20,8 @@ ## Configuration in MegaLinter -- Enable kubeconform by adding `KUBERNETES_KUBECONFORM` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable kubeconform by adding `KUBERNETES_KUBECONFORM` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable kubeconform by adding `KUBERNETES_KUBECONFORM` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable kubeconform by adding `KUBERNETES_KUBECONFORM` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------| @@ -41,23 +41,22 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/kubernetes_kubeval.md b/docs/descriptors/kubernetes_kubeval.md index 2abc0955992..284f3a3f318 100644 --- a/docs/descriptors/kubernetes_kubeval.md +++ b/docs/descriptors/kubernetes_kubeval.md @@ -11,8 +11,8 @@ ## Configuration in MegaLinter -- Enable kubeval by adding `KUBERNETES_KUBEVAL` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable kubeval by adding `KUBERNETES_KUBEVAL` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable kubeval by adding `KUBERNETES_KUBEVAL` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable kubeval by adding `KUBERNETES_KUBEVAL` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------| @@ -32,23 +32,22 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -115,27 +114,3 @@ RUN ML_THIRD_PARTY_DIR="/third-party/kubeval" \ ``` - -### Example success log - -```shell -Results of kubeval linter (version 0.15.0) -See documentation on https://megalinter.github.io/descriptors/kubernetes_kubeval/ ------------------------------------------------ - -[SUCCESS] .automation/test/kubernetes/kubernetes/kubeval_good_1.yaml - PASS - .automation/test/kubernetes/kubernetes/kubeval_good_1.yaml contains a valid Deployment (nginx-deployment) - -``` - -### Example error log - -```shell -Results of kubeval linter (version 0.15.0) -See documentation on https://megalinter.github.io/descriptors/kubernetes_kubeval/ ------------------------------------------------ - -[ERROR] .automation/test/kubernetes/kubernetes/kubeval_bad_1.yaml - ERR - .automation/test/kubernetes/kubernetes/kubeval_bad_1.yaml: Missing 'metadata.name' key - -``` diff --git a/docs/descriptors/latex.md b/docs/descriptors/latex.md index d1f3dcffbbe..006d14c5bad 100644 --- a/docs/descriptors/latex.md +++ b/docs/descriptors/latex.md @@ -1,6 +1,6 @@ - + # LATEX ## Linters diff --git a/docs/descriptors/latex_chktex.md b/docs/descriptors/latex_chktex.md index ee8a9dcba84..c3db3ca8b3e 100644 --- a/docs/descriptors/latex_chktex.md +++ b/docs/descriptors/latex_chktex.md @@ -7,12 +7,12 @@ - Version in MegaLinter: **1.7.6** - Visit [Official Web Site](https://www.nongnu.org/chktex){target=_blank} - See [How to configure chktex rules](https://github.com/amaloz/dotfiles/blob/master/chktexrc){target=_blank} - - If custom `.chktexrc` config file is not found, [.chktexrc](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.chktexrc){target=_blank} will be used + - If custom `.chktexrc` config file is not found, [.chktexrc](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.chktexrc){target=_blank} will be used ## Configuration in MegaLinter -- Enable chktex by adding `LATEX_CHKTEX` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable chktex by adding `LATEX_CHKTEX` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable chktex by adding `LATEX_CHKTEX` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable chktex by adding `LATEX_CHKTEX` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -35,16 +35,16 @@ Use chktex in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-----------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-chktex](https://atom.io/packages/linter-chktex) | [Visit Web Site](https://atom.io/packages/linter-chktex){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [latex-workshop](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/James-Yu.latex-workshop){target=_blank} | +| | [Atom](https://atom.io/) | [linter-chktex](https://atom.io/packages/linter-chktex) | [Visit Web Site](https://atom.io/packages/linter-chktex){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [latex-workshop](https://marketplace.visualstudio.com/items?itemName=James-Yu.latex-workshop) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/James-Yu.latex-workshop){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes @@ -154,364 +154,3 @@ COPY --from=chktex /usr/bin/chktex /usr/bin/ RUN cd ~ && touch .chktexrc ``` - -### Example success log - -```shell -Results of chktex linter (version 1.7.6) -See documentation on https://megalinter.github.io/descriptors/latex_chktex/ ------------------------------------------------ - -[SUCCESS] .automation/test/latex/latex_good_1.tex - - -``` - -### Example error log - -```shell -Results of chktex linter (version 1.7.6) -See documentation on https://megalinter.github.io/descriptors/latex_chktex/ ------------------------------------------------ - -[ERROR] .automation/test/latex/latex_bad_1.tex - Warning 1 in .automation/test/latex/latex_bad_1.tex line 12: Command terminated with space. - \foo This is an error. - - Warning 1 in .automation/test/latex/latex_bad_1.tex line 13: Command terminated with space. - So is this \foo - - Warning 47 in .automation/test/latex/latex_bad_1.tex line 18: `section' expected, found `text' (ConTeXt). - \stoptext - - Warning 2 in .automation/test/latex/latex_bad_1.tex line 22: Non-breaking space (`~') should have been used. - This is a faulty reference to \ref{foo} - - Warning 3 in .automation/test/latex/latex_bad_1.tex line 27: You should enclose the previous parenthesis with `{}'. - $[(ab)^{-1}]^{-2}$ is not beautiful - - Warning 3 in .automation/test/latex/latex_bad_1.tex line 27: You should enclose the previous parenthesis with `{}'. - $[(ab)^{-1}]^{-2}$ is not beautiful - - Warning 6 in .automation/test/latex/latex_bad_1.tex line 32: No italic correction (`\/') found. - Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}. - - Warning 42 in .automation/test/latex/latex_bad_1.tex line 32: You should remove spaces in front of `\/' - Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}. - - Warning 4 in .automation/test/latex/latex_bad_1.tex line 32: Italic correction (`\/') found in non-italic buffer. - Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}. - - Warning 28 in .automation/test/latex/latex_bad_1.tex line 32: Don't use \/ in front of small punctuation. - Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}. - - Warning 42 in .automation/test/latex/latex_bad_1.tex line 32: You should remove spaces in front of `\/' - Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}. - - Warning 5 in .automation/test/latex/latex_bad_1.tex line 32: Italic correction (`\/') found more than once. - Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}. - - Warning 42 in .automation/test/latex/latex_bad_1.tex line 37: You should remove spaces in front of `\/' - Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}. - - Warning 4 in .automation/test/latex/latex_bad_1.tex line 37: Italic correction (`\/') found in non-italic buffer. - Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}. - - Warning 4 in .automation/test/latex/latex_bad_1.tex line 37: Italic correction (`\/') found in non-italic buffer. - Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}. - - Warning 42 in .automation/test/latex/latex_bad_1.tex line 37: You should remove spaces in front of `\/' - Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}. - - Warning 4 in .automation/test/latex/latex_bad_1.tex line 37: Italic correction (`\/') found in non-italic buffer. - Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}. - - Warning 4 in .automation/test/latex/latex_bad_1.tex line 37: Italic correction (`\/') found in non-italic buffer. - Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}. - - Warning 4 in .automation/test/latex/latex_bad_1.tex line 38: Italic correction (`\/') found in non-italic buffer. - Testing \textem{italic\/} in this \textit{sentence}, as \textem{you see}. - - Warning 7 in .automation/test/latex/latex_bad_1.tex line 42: Accent command `\'' needs use of `\i'. - This \'is a test of $\hat{j}$ accents. - - Warning 7 in .automation/test/latex/latex_bad_1.tex line 42: Accent command `\hat' needs use of `\jmath'. - This \'is a test of $\hat{j}$ accents. - - Warning 8 in .automation/test/latex/latex_bad_1.tex line 47: Wrong length of dash may have been used. - It wasn't anything - just a 2---3 star--shots. - - Warning 8 in .automation/test/latex/latex_bad_1.tex line 47: Wrong length of dash may have been used. - It wasn't anything - just a 2---3 star--shots. - - Warning 8 in .automation/test/latex/latex_bad_1.tex line 47: Wrong length of dash may have been used. - It wasn't anything - just a 2---3 star--shots. - - Warning 8 in .automation/test/latex/latex_bad_1.tex line 57: Wrong length of dash may have been used. - The Birch--Swinnerton--Dyer conjecture is not correct. - - Warning 8 in .automation/test/latex/latex_bad_1.tex line 57: Wrong length of dash may have been used. - The Birch--Swinnerton--Dyer conjecture is not correct. - - Warning 37 in .automation/test/latex/latex_bad_1.tex line 64: You should avoid spaces in front of parenthesis. - )}{[])} }}}]]]))) - - Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `)' found. - )}{[])} }}}]]]))) - - Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `}' found. - )}{[])} }}}]]]))) - - Warning 9 in .automation/test/latex/latex_bad_1.tex line 64: `}' expected, found `)'. - )}{[])} }}}]]]))) - - Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `}' found. - )}{[])} }}}]]]))) - - Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `}' found. - )}{[])} }}}]]]))) - - Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `}' found. - )}{[])} }}}]]]))) - - Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `}' found. - )}{[])} }}}]]]))) - - Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `]' found. - )}{[])} }}}]]]))) - - Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `]' found. - )}{[])} }}}]]]))) - - Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `]' found. - )}{[])} }}}]]]))) - - Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `)' found. - )}{[])} }}}]]]))) - - Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `)' found. - )}{[])} }}}]]]))) - - Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `)' found. - )}{[])} }}}]]]))) - - Warning 9 in .automation/test/latex/latex_bad_1.tex line 69: `baz' expected, found `quux'. - \begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo} - - Warning 9 in .automation/test/latex/latex_bad_1.tex line 69: `quux' expected, found `baz'. - \begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo} - - Warning 10 in .automation/test/latex/latex_bad_1.tex line 69: Solo `asoi' found. - \begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo} - - Warning 11 in .automation/test/latex/latex_bad_1.tex line 75: You should use \ldots to achieve an ellipsis. - Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$. - - Warning 11 in .automation/test/latex/latex_bad_1.tex line 75: You should use \ldots to achieve an ellipsis. - Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$. - - Warning 11 in .automation/test/latex/latex_bad_1.tex line 75: You should use \cdots to achieve an ellipsis. - Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$. - - Warning 11 in .automation/test/latex/latex_bad_1.tex line 75: You should use \ldots to achieve an ellipsis. - Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$. - - Warning 11 in .automation/test/latex/latex_bad_1.tex line 75: You should use \cdots to achieve an ellipsis. - Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$. - - Warning 12 in .automation/test/latex/latex_bad_1.tex line 80: Interword spacing (`\ ') should perhaps be used. - 1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george - - Warning 12 in .automation/test/latex/latex_bad_1.tex line 80: Interword spacing (`\ ') should perhaps be used. - 1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george - - Warning 12 in .automation/test/latex/latex_bad_1.tex line 80: Interword spacing (`\ ') should perhaps be used. - 1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george - - Warning 12 in .automation/test/latex/latex_bad_1.tex line 80: Interword spacing (`\ ') should perhaps be used. - 1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george - - Warning 12 in .automation/test/latex/latex_bad_1.tex line 80: Interword spacing (`\ ') should perhaps be used. - 1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george - - Warning 12 in .automation/test/latex/latex_bad_1.tex line 80: Interword spacing (`\ ') should perhaps be used. - 1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george - - Warning 12 in .automation/test/latex/latex_bad_1.tex line 80: Interword spacing (`\ ') should perhaps be used. - 1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george - - Warning 13 in .automation/test/latex/latex_bad_1.tex line 85: Intersentence spacing (`\@') should perhaps be used. - Look at THIS! It's an error. - - Warning 1 in .automation/test/latex/latex_bad_1.tex line 90: Command terminated with space. - \hat - - Error 14 in .automation/test/latex/latex_bad_1.tex line 90: Could not find argument for command. - \hat - - Warning 18 in .automation/test/latex/latex_bad_1.tex line 95: Use either `` or '' as an alternative to `"'. - Is this an "example", or is it an �example�. - - Warning 18 in .automation/test/latex/latex_bad_1.tex line 95: Use either `` or '' as an alternative to `"'. - Is this an "example", or is it an �example�. - - Warning 20 in .automation/test/latex/latex_bad_1.tex line 100: User-specified pattern found: \unknown. - That bug is \unknown\ to me. - - Warning 23 in .automation/test/latex/latex_bad_1.tex line 110: Either `\,`` or ``\,` will look better. - ```Hello', I heard him said'', she remembered. - - Warning 24 in .automation/test/latex/latex_bad_1.tex line 115: Delete this space to maintain correct pagereferences. - Indexing text \index{text} is fun! - - Warning 24 in .automation/test/latex/latex_bad_1.tex line 120: Delete this space to maintain correct pagereferences. - \index{text} is fun! - - Warning 25 in .automation/test/latex/latex_bad_1.tex line 124: You might wish to put this between a pair of `{}' - $5\cdot10^10$ - - Warning 26 in .automation/test/latex/latex_bad_1.tex line 129: You ought to remove spaces in front of punctuation. - Do you understand ? - - Warning 29 in .automation/test/latex/latex_bad_1.tex line 133: $\times$ may look prettier here. - The program opens a screen sized 640x200 pixels - - Warning 31 in .automation/test/latex/latex_bad_1.tex line 144: This text may be ignored. - \end{verbatim} foo bar - - Warning 32 in .automation/test/latex/latex_bad_1.tex line 148: Use ` to begin quotation, not '. - This is either an 'example`, an ''example`` or an `"`example'`'. - - Warning 33 in .automation/test/latex/latex_bad_1.tex line 148: Use ' to end quotation, not `. - This is either an 'example`, an ''example`` or an `"`example'`'. - - Warning 32 in .automation/test/latex/latex_bad_1.tex line 148: Use ` to begin quotation, not '. - This is either an 'example`, an ''example`` or an `"`example'`'. - - Warning 33 in .automation/test/latex/latex_bad_1.tex line 148: Use ' to end quotation, not `. - This is either an 'example`, an ''example`` or an `"`example'`'. - - Warning 34 in .automation/test/latex/latex_bad_1.tex line 148: Don't mix quotes. - This is either an 'example`, an ''example`` or an `"`example'`'. - - Warning 34 in .automation/test/latex/latex_bad_1.tex line 148: Don't mix quotes. - This is either an 'example`, an ''example`` or an `"`example'`'. - - Warning 35 in .automation/test/latex/latex_bad_1.tex line 153: You should perhaps use `\sin' instead. - $sin^2 + cos^2 = 1$ - - Warning 35 in .automation/test/latex/latex_bad_1.tex line 153: You should perhaps use `\cos' instead. - $sin^2 + cos^2 = 1$ - - Warning 36 in .automation/test/latex/latex_bad_1.tex line 158: You should put a space in front of parenthesis. - This( an example( Nuff said )), illustrates( ``my'' )point. - - Warning 37 in .automation/test/latex/latex_bad_1.tex line 158: You should avoid spaces after parenthesis. - This( an example( Nuff said )), illustrates( ``my'' )point. - - Warning 36 in .automation/test/latex/latex_bad_1.tex line 158: You should put a space in front of parenthesis. - This( an example( Nuff said )), illustrates( ``my'' )point. - - Warning 37 in .automation/test/latex/latex_bad_1.tex line 158: You should avoid spaces after parenthesis. - This( an example( Nuff said )), illustrates( ``my'' )point. - - Warning 37 in .automation/test/latex/latex_bad_1.tex line 158: You should avoid spaces in front of parenthesis. - This( an example( Nuff said )), illustrates( ``my'' )point. - - Warning 36 in .automation/test/latex/latex_bad_1.tex line 158: You should put a space in front of parenthesis. - This( an example( Nuff said )), illustrates( ``my'' )point. - - Warning 37 in .automation/test/latex/latex_bad_1.tex line 158: You should avoid spaces after parenthesis. - This( an example( Nuff said )), illustrates( ``my'' )point. - - Warning 37 in .automation/test/latex/latex_bad_1.tex line 158: You should avoid spaces in front of parenthesis. - This( an example( Nuff said )), illustrates( ``my'' )point. - - Warning 36 in .automation/test/latex/latex_bad_1.tex line 158: You should put a space after parenthesis. - This( an example( Nuff said )), illustrates( ``my'' )point. - - Warning 38 in .automation/test/latex/latex_bad_1.tex line 162: You should not use punctuation in front of quotes. - ``An example,'' he said, ``would be great.'' - - Warning 38 in .automation/test/latex/latex_bad_1.tex line 162: You should not use punctuation in front of quotes. - ``An example,'' he said, ``would be great.'' - - Warning 39 in .automation/test/latex/latex_bad_1.tex line 167: Double space found. - For output codes, see table ~\ref{tab:fmtout}. - - Warning 40 in .automation/test/latex/latex_bad_1.tex line 171: You should put punctuation outside inner math mode. - $\this,$ and $$this$$. - - Warning 45 in .automation/test/latex/latex_bad_1.tex line 171: Use \[ ... \] instead of $$ ... $$. - $\this,$ and $$this$$. - - Warning 40 in .automation/test/latex/latex_bad_1.tex line 171: You should put punctuation inside display math mode. - $\this,$ and $$this$$. - - Warning 45 in .automation/test/latex/latex_bad_1.tex line 172: Use \[ ... \] instead of $$ ... $$. - $\this$, and $$this.$$ - - Warning 1 in .automation/test/latex/latex_bad_1.tex line 175: Command terminated with space. - foo \above qux - - Warning 42 in .automation/test/latex/latex_bad_1.tex line 179: You should remove spaces in front of `\footnote' - This is a footnote \footnote{foo}. - - Warning 43 in .automation/test/latex/latex_bad_1.tex line 183: `\left' is normally not followed by `{'. - Here is a mistake $\left{x\right}$. - - Warning 43 in .automation/test/latex/latex_bad_1.tex line 183: `\right' is normally not followed by `}'. - Here is a mistake $\left{x\right}$. - - Warning 44 in .automation/test/latex/latex_bad_1.tex line 192: User Regex: Always use \nmid. - For every $p\not|n$ you have an ugly prime which doesn't divide $n$. - - Warning 35 in .automation/test/latex/latex_bad_1.tex line 196: You should perhaps use `\sin' instead. - \ensuremath{sin x\text{is not the same as sin x, but is the same as $sin x$}} - - Warning 35 in .automation/test/latex/latex_bad_1.tex line 196: You should perhaps use `\sin' instead. - \ensuremath{sin x\text{is not the same as sin x, but is the same as $sin x$}} - - Warning 36 in .automation/test/latex/latex_bad_1.tex line 197: You should put a space in front of parenthesis. - Also, $x(3)\text{ is not x(3) but it is $x(3)$}$ - - Warning 36 in .automation/test/latex/latex_bad_1.tex line 201: You should put a space in front of parenthesis. - But this is not a \% comment, so we should find this error(right)? - - Warning 36 in .automation/test/latex/latex_bad_1.tex line 204: You should put a space in front of parenthesis. - Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36 - - Warning 36 in .automation/test/latex/latex_bad_1.tex line 204: You should put a space after parenthesis. - Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36 - - Warning 44 in .automation/test/latex/latex_bad_1.tex line 206: User Regex: 1:Capitalize before references. - In section~\ref{sec:3} we have a warning. - - Warning 44 in .automation/test/latex/latex_bad_1.tex line 210: User Regex: -2:Vertical rules in tables are ugly. - \begin{tabular*}{1.0\linewidth}[h]{|c|cc|} - - Warning 44 in .automation/test/latex/latex_bad_1.tex line 212: User Regex: -2:Use \toprule, midrule, or \bottomrule from booktabs. - \hline - - Error 14 in .automation/test/latex/latex_bad_1.tex line 219: Could not find argument for command. - \verb# - - Warning 31 in .automation/test/latex/latex_bad_1.tex line 223: This text may be ignored. - \end{verbatim} FOO - - Warning 45 in .automation/test/latex/latex_bad_1.tex line 227: Use \[ ... \] instead of $$ ... $$. - $$( - - Warning 16 in .automation/test/latex/latex_bad_1.tex line 232: Mathmode still on at end of LaTeX file. - - - Warning 17 in .automation/test/latex/latex_bad_1.tex line 232: Number of `(' doesn't match the number of `)'! - - - Warning 17 in .automation/test/latex/latex_bad_1.tex line 232: Number of `[' doesn't match the number of `]'! - - - Warning 17 in .automation/test/latex/latex_bad_1.tex line 232: Number of `{' doesn't match the number of `}'! - - -``` diff --git a/docs/descriptors/lua.md b/docs/descriptors/lua.md index a94271a173e..ef3f61d60e2 100644 --- a/docs/descriptors/lua.md +++ b/docs/descriptors/lua.md @@ -1,6 +1,6 @@ - + # LUA ## Linters diff --git a/docs/descriptors/lua_luacheck.md b/docs/descriptors/lua_luacheck.md index 79826a15638..d008a5e18e6 100644 --- a/docs/descriptors/lua_luacheck.md +++ b/docs/descriptors/lua_luacheck.md @@ -7,7 +7,7 @@ - Version in MegaLinter: **0.26.1** - Visit [Official Web Site](https://luacheck.readthedocs.io){target=_blank} - See [How to configure luacheck rules](https://luacheck.readthedocs.io/en/stable/config.html){target=_blank} - - If custom `.luacheckrc` config file is not found, [.luacheckrc](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.luacheckrc){target=_blank} will be used + - If custom `.luacheckrc` config file is not found, [.luacheckrc](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.luacheckrc){target=_blank} will be used - See [How to disable luacheck rules in files](https://luacheck.readthedocs.io/en/stable/inline.html){target=_blank} - See [Index of problems detected by luacheck](https://luacheck.readthedocs.io/en/stable/warnings.html){target=_blank} @@ -15,8 +15,8 @@ ## Configuration in MegaLinter -- Enable luacheck by adding `LUA_LUACHECK` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable luacheck by adding `LUA_LUACHECK` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable luacheck by adding `LUA_LUACHECK` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable luacheck by adding `LUA_LUACHECK` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -39,20 +39,20 @@ Use luacheck in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:---------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-luacheck](https://atom.io/packages/linter-luacheck) | [Visit Web Site](https://atom.io/packages/linter-luacheck){target=_blank} | -| | [Brackets](http://brackets.io/) | [brackets-luacheck](https://github.com/Malcolm3141/brackets-luacheck) | [Visit Web Site](https://github.com/Malcolm3141/brackets-luacheck){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](http://www.flycheck.org/en/latest/languages.html#lua) | [Visit Web Site](http://www.flycheck.org/en/latest/languages.html#lua){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-luacheck](https://packagecontrol.io/packages/SublimeLinter-luacheck) | [Visit Web Site](https://packagecontrol.io/packages/SublimeLinter-luacheck){target=_blank} | -| | [vim](https://www.vim.org/) | [Syntastic](https://github.com/vim-syntastic/syntastic/wiki/Lua%3A---luacheck) | [Visit Web Site](https://github.com/vim-syntastic/syntastic/wiki/Lua%3A---luacheck){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-luacheck](https://marketplace.visualstudio.com/items?itemName=dwenegar.vscode-luacheck) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/dwenegar.vscode-luacheck){target=_blank} | +| | [Atom](https://atom.io/) | [linter-luacheck](https://atom.io/packages/linter-luacheck) | [Visit Web Site](https://atom.io/packages/linter-luacheck){target=_blank} | +| | [Brackets](http://brackets.io/) | [brackets-luacheck](https://github.com/Malcolm3141/brackets-luacheck) | [Visit Web Site](https://github.com/Malcolm3141/brackets-luacheck){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](http://www.flycheck.org/en/latest/languages.html#lua) | [Visit Web Site](http://www.flycheck.org/en/latest/languages.html#lua){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-luacheck](https://packagecontrol.io/packages/SublimeLinter-luacheck) | [Visit Web Site](https://packagecontrol.io/packages/SublimeLinter-luacheck){target=_blank} | +| | [vim](https://www.vim.org/) | [Syntastic](https://github.com/vim-syntastic/syntastic/wiki/Lua%3A---luacheck) | [Visit Web Site](https://github.com/vim-syntastic/syntastic/wiki/Lua%3A---luacheck){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-luacheck](https://marketplace.visualstudio.com/items?itemName=dwenegar.vscode-luacheck) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/dwenegar.vscode-luacheck){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes @@ -282,33 +282,6 @@ RUN wget --tries=5 https://www.lua.org/ftp/lua-5.3.5.tar.gz -O - -q | tar -xzf - ``` - -### Example success log - -```shell -Results of luacheck linter (version 0.23.0) -See documentation on https://megalinter.github.io/descriptors/lua_luacheck/ ------------------------------------------------ - -[SUCCESS] .automation/test/lua/lua_good_1.lua - Checking .automation/test/lua/lua_good_1.lua OK - - Total: 0 warnings / 0 errors in 1 file - -``` - -### Example error log - -```shell -Results of luacheck linter (version 0.23.0) -See documentation on https://megalinter.github.io/descriptors/lua_luacheck/ ------------------------------------------------ - -[ERROR] .automation/test/lua/lua_bad_1.lua - Checking .automation/test/lua/lua_bad_1.lua 1 error - - .automation/test/lua/lua_bad_1.lua:10:1: expected 'end' (to close 'function' on line 7) near - - Total: 0 warnings / 1 error in 1 file - -``` +- APK packages (Linux): + - [openssl](https://pkgs.alpinelinux.org/packages?branch=edge&name=openssl) + - [readline-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=readline-dev) diff --git a/docs/descriptors/markdown.md b/docs/descriptors/markdown.md index d08125aafe0..4741a882422 100644 --- a/docs/descriptors/markdown.md +++ b/docs/descriptors/markdown.md @@ -1,6 +1,6 @@ - + # MARKDOWN ## Linters diff --git a/docs/descriptors/markdown_markdown_link_check.md b/docs/descriptors/markdown_markdown_link_check.md index c34eb87a93c..b2d2b7b9c53 100644 --- a/docs/descriptors/markdown_markdown_link_check.md +++ b/docs/descriptors/markdown_markdown_link_check.md @@ -7,15 +7,15 @@ - Version in MegaLinter: **3.10.2** - Visit [Official Web Site](https://github.com/tcort/markdown-link-check#readme){target=_blank} - See [How to configure markdown-link-check rules](https://github.com/tcort/markdown-link-check#config-file-format){target=_blank} - - If custom `.markdown-link-check.json` config file is not found, [.markdown-link-check.json](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.markdown-link-check.json){target=_blank} will be used + - If custom `.markdown-link-check.json` config file is not found, [.markdown-link-check.json](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.markdown-link-check.json){target=_blank} will be used - See [How to disable markdown-link-check rules in files](https://github.com/tcort/markdown-link-check#disable-comments){target=_blank} [![markdown-link-check - GitHub](https://gh-card.dev/repos/tcort/markdown-link-check.svg?fullname=)](https://github.com/tcort/markdown-link-check){target=_blank} ## Configuration in MegaLinter -- Enable markdown-link-check by adding `MARKDOWN_MARKDOWN_LINK_CHECK` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable markdown-link-check by adding `MARKDOWN_MARKDOWN_LINK_CHECK` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable markdown-link-check by adding `MARKDOWN_MARKDOWN_LINK_CHECK` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable markdown-link-check by adding `MARKDOWN_MARKDOWN_LINK_CHECK` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |----------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -36,23 +36,21 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -100,40 +98,3 @@ Options: - NPM packages (node.js): - [markdown-link-check](https://www.npmjs.com/package/markdown-link-check) - -### Example success log - -```shell -Results of markdown-link-check linter (version 0.0.0) -See documentation on https://megalinter.github.io/descriptors/markdown_markdown_link_check/ ------------------------------------------------ - -[SUCCESS] .automation/test/markdown/markdown_good_1.md - - FILE: .automation/test/markdown/markdown_good_1.md - [✓] https://github.com - - 1 links checked. - -``` - -### Example error log - -```shell -Results of markdown-link-check linter (version 0.0.0) -See documentation on https://megalinter.github.io/descriptors/markdown_markdown_link_check/ ------------------------------------------------ - -[ERROR] .automation/test/markdown/markdown_bad_1.md - - FILE: .automation/test/markdown/markdown_bad_1.md - [✓] https://github.com - [✓] #wesh - [✖] http://www.glouglouglglsdgdfgfdgsfgdfgdf.com - - 3 links checked. - - ERROR: 1 dead links found! - [✖] http://www.glouglouglglsdgdfgfdgsfgdfgdf.com → Status: 0 - -``` diff --git a/docs/descriptors/markdown_markdown_table_formatter.md b/docs/descriptors/markdown_markdown_table_formatter.md index cd1080c9c66..8ae4336c9c9 100644 --- a/docs/descriptors/markdown_markdown_table_formatter.md +++ b/docs/descriptors/markdown_markdown_table_formatter.md @@ -13,10 +13,10 @@ markdown-table-formatter detects wrongly formatted markdown tables and can autom ## Configuration in MegaLinter -- Enable markdown-table-formatter by adding `MARKDOWN_MARKDOWN_TABLE_FORMATTER` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable markdown-table-formatter by adding `MARKDOWN_MARKDOWN_TABLE_FORMATTER` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable markdown-table-formatter by adding `MARKDOWN_MARKDOWN_TABLE_FORMATTER` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable markdown-table-formatter by adding `MARKDOWN_MARKDOWN_TABLE_FORMATTER` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `MARKDOWN_MARKDOWN_TABLE_FORMATTER` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `MARKDOWN_MARKDOWN_TABLE_FORMATTER` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |---------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -37,29 +37,27 @@ Use markdown-table-formatter in your favorite IDE to catch errors before MegaLin | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|----------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------:| -| | [Visual Studio Code](https://code.visualstudio.com/) | [Markdown Table Prettify Extension](https://github.com/darkriszty/MarkdownTablePrettify-VSCodeExt) | [Visit Web Site](https://github.com/darkriszty/MarkdownTablePrettify-VSCodeExt){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [Markdown Table Prettify Extension](https://github.com/darkriszty/MarkdownTablePrettify-VSCodeExt) | [Visit Web Site](https://github.com/darkriszty/MarkdownTablePrettify-VSCodeExt){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/markdown_markdownlint.md b/docs/descriptors/markdown_markdownlint.md index 0047c439f3b..b235e4fb7dc 100644 --- a/docs/descriptors/markdown_markdownlint.md +++ b/docs/descriptors/markdown_markdownlint.md @@ -7,7 +7,7 @@ - Version in MegaLinter: **0.31.1** - Visit [Official Web Site](https://github.com/DavidAnson/markdownlint#readme){target=_blank} - See [How to configure markdownlint rules](https://github.com/igorshubovych/markdownlint-cli#configuration){target=_blank} - - If custom `.markdownlint.json` config file is not found, [.markdownlint.json](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.markdownlint.json){target=_blank} will be used + - If custom `.markdownlint.json` config file is not found, [.markdownlint.json](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.markdownlint.json){target=_blank} will be used - See [How to disable markdownlint rules in files](https://github.com/DavidAnson/markdownlint#configuration){target=_blank} - See [Index of problems detected by markdownlint](https://github.com/DavidAnson/markdownlint#rules--aliases){target=_blank} @@ -15,10 +15,10 @@ ## Configuration in MegaLinter -- Enable markdownlint by adding `MARKDOWN_MARKDOWNLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable markdownlint by adding `MARKDOWN_MARKDOWNLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable markdownlint by adding `MARKDOWN_MARKDOWNLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable markdownlint by adding `MARKDOWN_MARKDOWNLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `MARKDOWN_MARKDOWNLINT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `MARKDOWN_MARKDOWNLINT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |---------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -42,32 +42,30 @@ Use markdownlint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-node-markdownlint](https://atom.io/packages/linter-node-markdownlint) | [Visit Web Site](https://atom.io/packages/linter-node-markdownlint){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-markdownlint](https://packagecontrol.io/packages/SublimeLinter-contrib-markdownlint) | [Visit Web Site](https://packagecontrol.io/packages/SublimeLinter-contrib-markdownlint){target=_blank} | -| | [vim](https://www.vim.org/) | [coc-markdownlint](https://github.com/fannheyward/coc-markdownlint) | [Visit Web Site](https://github.com/fannheyward/coc-markdownlint){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-markdownlint](https://marketplace.visualstudio.com/items/DavidAnson.vscode-markdownlint) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/DavidAnson.vscode-markdownlint){target=_blank} | +| | [Atom](https://atom.io/) | [linter-node-markdownlint](https://atom.io/packages/linter-node-markdownlint) | [Visit Web Site](https://atom.io/packages/linter-node-markdownlint){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-markdownlint](https://packagecontrol.io/packages/SublimeLinter-contrib-markdownlint) | [Visit Web Site](https://packagecontrol.io/packages/SublimeLinter-contrib-markdownlint){target=_blank} | +| | [vim](https://www.vim.org/) | [coc-markdownlint](https://github.com/fannheyward/coc-markdownlint) | [Visit Web Site](https://github.com/fannheyward/coc-markdownlint){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-markdownlint](https://marketplace.visualstudio.com/items/DavidAnson.vscode-markdownlint) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/DavidAnson.vscode-markdownlint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -124,31 +122,3 @@ Options: - NPM packages (node.js): - [markdownlint-cli](https://www.npmjs.com/package/markdownlint-cli) - -### Example success log - -```shell -Results of markdownlint linter (version 0.25.0) -See documentation on https://megalinter.github.io/descriptors/markdown_markdownlint/ ------------------------------------------------ - -[SUCCESS] .automation/test/markdown/markdown_good_1.md - - -``` - -### Example error log - -```shell -Results of markdownlint linter (version 0.25.0) -See documentation on https://megalinter.github.io/descriptors/markdown_markdownlint/ ------------------------------------------------ - -[ERROR] .automation/test/markdown/markdown_bad_1.md - .automation/test/markdown/markdown_bad_1.md:1 MD041/first-line-heading/first-line-h1 First line in file should be a top level heading [Context: "## Bad Markdown"] - .automation/test/markdown/markdown_bad_1.md:5 MD001/heading-increment/header-increment Heading levels should only increment by one level at a time [Expected: h3; Actual: h6] - .automation/test/markdown/markdown_bad_1.md:11:1 MD007/ul-indent Unordered list indentation [Expected: 4; Actual: 6] - .automation/test/markdown/markdown_bad_1.md:13 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] - .automation/test/markdown/markdown_bad_1.md:20:16 MD034/no-bare-urls Bare URL used [Context: "https://github.com"] - -``` diff --git a/docs/descriptors/markdown_remark_lint.md b/docs/descriptors/markdown_remark_lint.md index d183c15749a..9c338eac06d 100644 --- a/docs/descriptors/markdown_remark_lint.md +++ b/docs/descriptors/markdown_remark_lint.md @@ -2,12 +2,14 @@ # remark-lint [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) +_This linter has been temporary disabled in this version_ + ## remark-lint documentation - Version in MegaLinter: **14.0.2** - Visit [Official Web Site](https://remark.js.org/){target=_blank} - See [How to configure remark-lint rules](https://github.com/remarkjs/remark-lint#configuring-remark-lint){target=_blank} - - If custom `.remarkrc` config file is not found, [.remarkrc](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.remarkrc){target=_blank} will be used + - If custom `.remarkrc` config file is not found, [.remarkrc](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.remarkrc){target=_blank} will be used - See [How to disable remark-lint rules in files](https://github.com/remarkjs/remark-message-control#markers){target=_blank} - See [Index of problems detected by remark-lint](https://github.com/remarkjs/remark-lint/blob/main/doc/rules.md#list-of-rules){target=_blank} @@ -15,10 +17,10 @@ ## Configuration in MegaLinter -- Enable remark-lint by adding `MARKDOWN_REMARK_LINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable remark-lint by adding `MARKDOWN_REMARK_LINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable remark-lint by adding `MARKDOWN_REMARK_LINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable remark-lint by adding `MARKDOWN_REMARK_LINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `MARKDOWN_REMARK_LINT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `MARKDOWN_REMARK_LINT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |--------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -42,32 +44,18 @@ Use remark-lint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-remark](https://github.com/wooorm/linter-remark) | [Visit Web Site](https://github.com/wooorm/linter-remark){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-remark-lint](https://packagecontrol.io/packages/SublimeLinter-contrib-remark-lint) | [Visit Web Site](https://packagecontrol.io/packages/SublimeLinter-contrib-remark-lint){target=_blank} | -| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-remark-lint](https://github.com/drewbourne/vscode-remark-lint) | [Visit Web Site](https://github.com/drewbourne/vscode-remark-lint){target=_blank} | +| | [Atom](https://atom.io/) | [linter-remark](https://github.com/wooorm/linter-remark) | [Visit Web Site](https://github.com/wooorm/linter-remark){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-remark-lint](https://packagecontrol.io/packages/SublimeLinter-contrib-remark-lint) | [Visit Web Site](https://packagecontrol.io/packages/SublimeLinter-contrib-remark-lint){target=_blank} | +| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-remark-lint](https://github.com/drewbourne/vscode-remark-lint) | [Visit Web Site](https://github.com/drewbourne/vscode-remark-lint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes diff --git a/docs/descriptors/openapi.md b/docs/descriptors/openapi.md index 9613981d2de..ecbecf6b67f 100644 --- a/docs/descriptors/openapi.md +++ b/docs/descriptors/openapi.md @@ -1,6 +1,6 @@ - + # OPENAPI ## Linters diff --git a/docs/descriptors/openapi_spectral.md b/docs/descriptors/openapi_spectral.md index d2b912866cf..daa0862ef77 100644 --- a/docs/descriptors/openapi_spectral.md +++ b/docs/descriptors/openapi_spectral.md @@ -14,15 +14,15 @@ - Version in MegaLinter: **5.6.0** - Visit [Official Web Site](https://meta.stoplight.io/docs/spectral/README.md){target=_blank} - See [How to configure spectral rules](https://meta.stoplight.io/docs/spectral/docs/getting-started/3-rulesets.md){target=_blank} - - If custom `.openapirc.yml` config file is not found, [.openapirc.yml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.openapirc.yml){target=_blank} will be used + - If custom `.openapirc.yml` config file is not found, [.openapirc.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.openapirc.yml){target=_blank} will be used - See [Index of problems detected by spectral](https://meta.stoplight.io/docs/spectral/docs/reference/openapi-rules.md){target=_blank} [![spectral - GitHub](https://gh-card.dev/repos/stoplightio/spectral.svg?fullname=)](https://github.com/stoplightio/spectral){target=_blank} ## Configuration in MegaLinter -- Enable spectral by adding `OPENAPI_SPECTRAL` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable spectral by adding `OPENAPI_SPECTRAL` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable spectral by adding `OPENAPI_SPECTRAL` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable spectral by adding `OPENAPI_SPECTRAL` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -45,30 +45,28 @@ Use spectral in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-------------------------------------------------------------------|:-------------------------------------------------------------------------------:| -| | stoplight | [Native integration](https://stoplight.io/studio) | [Visit Web Site](https://stoplight.io/studio){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-spectral](https://github.com/stoplightio/vscode-spectral) | [Visit Web Site](https://github.com/stoplightio/vscode-spectral){target=_blank} | +| | stoplight | [Native integration](https://stoplight.io/studio) | [Visit Web Site](https://stoplight.io/studio){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-spectral](https://github.com/stoplightio/vscode-spectral) | [Visit Web Site](https://github.com/stoplightio/vscode-spectral){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -125,53 +123,3 @@ Options: - NPM packages (node.js): - [@stoplight/spectral@5.6.0](https://www.npmjs.com/package/@stoplight/spectral) - -### Example success log - -```shell -Results of spectral linter (version 5.6.0) -See documentation on https://megalinter.github.io/descriptors/openapi_spectral/ ------------------------------------------------ - -[SUCCESS] .automation/test/openapi/openapi_good_1.yml - OpenAPI 3.x detected - No results with a severity of 'error' or higher found! - -[SUCCESS] .automation/test/openapi/openapi_good_2.json - OpenAPI 3.x detected - No results with a severity of 'error' or higher found! - -``` - -### Example error log - -```shell -Results of spectral linter (version 5.6.0) -See documentation on https://megalinter.github.io/descriptors/openapi_spectral/ ------------------------------------------------ - -[ERROR] .automation/test/openapi/openapi_bad_1.yml - OpenAPI 3.x detected - - .automation/test/openapi/openapi_bad_1.yml - 1:1 warning info-contact Info object should contain `contact` object. - 1:1 warning info-description OpenAPI object info `description` must be present and non-empty string. - 1:1 warning oas3-api-servers OpenAPI `servers` must be present and non-empty array. - 1:1 error oas3-schema Object should have required property `info`. - 1:1 warning openapi-tags OpenAPI object should have non-empty `tags` array. - - ✖ 5 problems (1 error, 4 warnings, 0 infos, 0 hints) - -[ERROR] .automation/test/openapi/openapi_bad_2.json - OpenAPI 3.x detected - - .automation/test/openapi/openapi_bad_2.json - 1:1 warning info-contact Info object should contain `contact` object. - 1:1 warning info-description OpenAPI object info `description` must be present and non-empty string. - 1:1 warning oas3-api-servers OpenAPI `servers` must be present and non-empty array. - 1:1 error oas3-schema Object should have required property `info`. - 1:1 warning openapi-tags OpenAPI object should have non-empty `tags` array. - - ✖ 5 problems (1 error, 4 warnings, 0 infos, 0 hints) - -``` diff --git a/docs/descriptors/perl.md b/docs/descriptors/perl.md index 725afa9fa7c..852d0c64ddb 100644 --- a/docs/descriptors/perl.md +++ b/docs/descriptors/perl.md @@ -1,6 +1,6 @@ - + # PERL ## Linters diff --git a/docs/descriptors/perl_perlcritic.md b/docs/descriptors/perl_perlcritic.md index 4f1a9350247..9e23e0933c5 100644 --- a/docs/descriptors/perl_perlcritic.md +++ b/docs/descriptors/perl_perlcritic.md @@ -21,8 +21,8 @@ ## Configuration in MegaLinter -- Enable perlcritic by adding `PERL_PERLCRITIC` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable perlcritic by adding `PERL_PERLCRITIC` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable perlcritic by adding `PERL_PERLCRITIC` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable perlcritic by adding `PERL_PERLCRITIC` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |---------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------| @@ -41,9 +41,9 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes @@ -102,30 +102,3 @@ Usage: RUN curl --retry 5 --retry-delay 5 -sL https://cpanmin.us/ | perl - -nq --no-wget Perl::Critic ``` - -### Example success log - -```shell -Results of perlcritic linter (version 1.138) -See documentation on https://megalinter.github.io/descriptors/perl_perlcritic/ ------------------------------------------------ - -[SUCCESS] .automation/test/perl/perl_good_1.pl - .automation/test/perl/perl_good_1.pl source OK - -[SUCCESS] .automation/test/perl/perl_good_2 - .automation/test/perl/perl_good_2 source OK - -``` - -### Example error log - -```shell -Results of perlcritic linter (version 1.138) -See documentation on https://megalinter.github.io/descriptors/perl_perlcritic/ ------------------------------------------------ - -[ERROR] .automation/test/perl/perl_bad_1.pl - Code before strictures are enabled at line 14, column 1. See page 429 of PBP. (Severity: 5) - -``` diff --git a/docs/descriptors/php.md b/docs/descriptors/php.md index 2db0714053d..41f819fad00 100644 --- a/docs/descriptors/php.md +++ b/docs/descriptors/php.md @@ -1,13 +1,12 @@ - + # PHP ## Linters | Linter | Configuration key | Status | |---------------------------|-------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------| -| [php](php_php.md) | [PHP_BUILTIN](php_php.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/php/php-src)](https://github.com/php/php-src/commits) | | [phpcs](php_phpcs.md) | [PHP_PHPCS](php_phpcs.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/squizlabs/PHP_CodeSniffer)](https://github.com/squizlabs/PHP_CodeSniffer/commits) | | [phpstan](php_phpstan.md) | [PHP_PHPSTAN](php_phpstan.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/phpstan/phpstan)](https://github.com/phpstan/phpstan/commits) | | [psalm](php_psalm.md) | [PHP_PSALM](php_psalm.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/vimeo/psalm)](https://github.com/vimeo/psalm/commits) | @@ -49,6 +48,7 @@ RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ ``` - APK packages (Linux): + - [gnupg](https://pkgs.alpinelinux.org/packages?branch=edge&name=gnupg) - [php7](https://pkgs.alpinelinux.org/packages?branch=edge&name=php7) - [php7-phar](https://pkgs.alpinelinux.org/packages?branch=edge&name=php7-phar) - [php7-json](https://pkgs.alpinelinux.org/packages?branch=edge&name=php7-json) diff --git a/docs/descriptors/php_php.md b/docs/descriptors/php_php.md index 7bebbbcc6b7..df085c46348 100644 --- a/docs/descriptors/php_php.md +++ b/docs/descriptors/php_php.md @@ -111,35 +111,3 @@ Usage: php [options] [-f] [--] [args...] ### Installation on mega-linter Docker image - -### Example success log - -```shell -Results of php linter (version 7.3.25) -See documentation on https://megalinter.github.io/descriptors/php_php/ ------------------------------------------------ - -[SUCCESS] .automation/test/php/php_good_1.php - No syntax errors detected in .automation/test/php/php_good_1.php - -[SUCCESS] .automation/test/php/php_good_2.php - No syntax errors detected in .automation/test/php/php_good_2.php - -``` - -### Example error log - -```shell -Results of php linter (version 7.3.25) -See documentation on https://megalinter.github.io/descriptors/php_php/ ------------------------------------------------ - -[ERROR] .automation/test/php/php_bad_1.php - PHP Parse error: syntax error, unexpected 'pe98y' (T_STRING) in .automation/test/php/php_bad_1.php on line 3 - Errors parsing .automation/test/php/php_bad_1.php - -[ERROR] .automation/test/php/php_bad_2.php - PHP Parse error: syntax error, unexpected '}' in .automation/test/php/php_bad_2.php on line 15 - Errors parsing .automation/test/php/php_bad_2.php - -``` diff --git a/docs/descriptors/php_phpcs.md b/docs/descriptors/php_phpcs.md index 40b4ec0d591..23bafe28909 100644 --- a/docs/descriptors/php_phpcs.md +++ b/docs/descriptors/php_phpcs.md @@ -7,15 +7,15 @@ - Version in MegaLinter: **3.7.1** - Visit [Official Web Site](https://github.com/squizlabs/PHP_CodeSniffer#readme){target=_blank} - See [How to configure phpcs rules](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#using-a-default-configuration-file){target=_blank} - - If custom `phpcs.xml` config file is not found, [phpcs.xml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/phpcs.xml){target=_blank} will be used + - If custom `phpcs.xml` config file is not found, [phpcs.xml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/phpcs.xml){target=_blank} will be used - See [How to disable phpcs rules in files](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#ignoring-parts-of-a-file){target=_blank} [![PHP_CodeSniffer - GitHub](https://gh-card.dev/repos/squizlabs/PHP_CodeSniffer.svg?fullname=)](https://github.com/squizlabs/PHP_CodeSniffer){target=_blank} ## Configuration in MegaLinter -- Enable phpcs by adding `PHP_PHPCS` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable phpcs by adding `PHP_PHPCS` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable phpcs by adding `PHP_PHPCS` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable phpcs by adding `PHP_PHPCS` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -38,21 +38,21 @@ Use phpcs in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-phpcs](https://atom.io/packages/linter-phpcs) | [Visit Web Site](https://atom.io/packages/linter-phpcs){target=_blank} | -| | [Atom](https://atom.io/) | [atom-phpcs](https://github.com/bpearson/atom-phpcs) | [Visit Web Site](https://github.com/bpearson/atom-phpcs){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [phpcs](https://www.jetbrains.com/help/phpstorm/2019.1/using-php-code-sniffer.html) | [Visit Web Site](https://www.jetbrains.com/help/phpstorm/2019.1/using-php-code-sniffer.html){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [sublime-phpcs](https://github.com/benmatselby/sublime-phpcs) | [Visit Web Site](https://github.com/benmatselby/sublime-phpcs){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-phpcs](https://github.com/SublimeLinter/SublimeLinter-phpcs) | [Visit Web Site](https://github.com/SublimeLinter/SublimeLinter-phpcs){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-phpcs](https://marketplace.visualstudio.com/items?itemName=ikappas.phpcs) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/ikappas.phpcs){target=_blank} | +| | [Atom](https://atom.io/) | [linter-phpcs](https://atom.io/packages/linter-phpcs) | [Visit Web Site](https://atom.io/packages/linter-phpcs){target=_blank} | +| | [Atom](https://atom.io/) | [atom-phpcs](https://github.com/bpearson/atom-phpcs) | [Visit Web Site](https://github.com/bpearson/atom-phpcs){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [phpcs](https://www.jetbrains.com/help/phpstorm/2019.1/using-php-code-sniffer.html) | [Visit Web Site](https://www.jetbrains.com/help/phpstorm/2019.1/using-php-code-sniffer.html){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [sublime-phpcs](https://github.com/benmatselby/sublime-phpcs) | [Visit Web Site](https://github.com/benmatselby/sublime-phpcs){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-phpcs](https://github.com/SublimeLinter/SublimeLinter-phpcs) | [Visit Web Site](https://github.com/SublimeLinter/SublimeLinter-phpcs){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-phpcs](https://marketplace.visualstudio.com/items?itemName=ikappas.phpcs) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/ikappas.phpcs){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:---------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:---------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | ## Behind the scenes @@ -177,69 +177,3 @@ RUN phive --no-progress install phpcs -g --trust-gpg-keys 31C7E470E2138192 ``` - -### Example success log - -```shell -Results of phpcs linter (version 3.5.8) -See documentation on https://megalinter.github.io/descriptors/php_phpcs/ ------------------------------------------------ - -[SUCCESS] .automation/test/php/php_good_1.php - - -[SUCCESS] .automation/test/php/php_good_2.php - - -``` - -### Example error log - -```shell -Results of phpcs linter (version 3.5.8) -See documentation on https://megalinter.github.io/descriptors/php_phpcs/ ------------------------------------------------ - -[ERROR] .automation/test/php/php_bad_1.php - - FILE: .automation/test/php/php_bad_1.php - ---------------------------------------------------------------------- - FOUND 7 ERRORS AFFECTING 1 LINE - ---------------------------------------------------------------------- - 3 | ERROR | [x] Expected at least 1 space before "-"; 0 found - 3 | ERROR | [x] Expected at least 1 space after "-"; 0 found - 3 | ERROR | [x] Expected at least 1 space before "="; 0 found - 3 | ERROR | [x] Expected at least 1 space after "="; 0 found - 3 | ERROR | [x] Expected at least 1 space before "-"; 0 found - 3 | ERROR | [x] Expected at least 1 space before "-"; 0 found - 3 | ERROR | [x] Expected at least 1 space after "-"; 0 found - ---------------------------------------------------------------------- - PHPCBF CAN FIX THE 7 MARKED SNIFF VIOLATIONS AUTOMATICALLY - ---------------------------------------------------------------------- - - Time: 49ms; Memory: 6MB - -[ERROR] .automation/test/php/php_bad_2.php - - FILE: .automation/test/php/php_bad_2.php - ---------------------------------------------------------------------- - FOUND 4 ERRORS AND 1 WARNING AFFECTING 4 LINES - ---------------------------------------------------------------------- - 1 | WARNING | [ ] A file should declare new symbols (classes, - | | functions, constants, etc.) and cause no other - | | side effects, or it should execute logic with - | | side effects, but should not do both. The first - | | symbol is defined on line 6 and the first side - | | effect is on line 10. - 6 | ERROR | [x] Opening brace should be on a new line - 14 | ERROR | [x] Space before opening parenthesis of function call - | | prohibited - 15 | ERROR | [x] Newline required after opening brace - 15 | ERROR | [x] Closing brace must be on a line by itself - ---------------------------------------------------------------------- - PHPCBF CAN FIX THE 4 MARKED SNIFF VIOLATIONS AUTOMATICALLY - ---------------------------------------------------------------------- - - Time: 45ms; Memory: 6MB - -``` diff --git a/docs/descriptors/php_phplint.md b/docs/descriptors/php_phplint.md index a0fb1370790..6dc55763287 100644 --- a/docs/descriptors/php_phplint.md +++ b/docs/descriptors/php_phplint.md @@ -6,14 +6,14 @@ - Version in MegaLinter: **3.0** - Visit [Official Web Site](https://github.com/overtrue/phplint#readme){target=_blank} - - If custom `.phplint.yml` config file is not found, [.phplint.yml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.phplint.yml){target=_blank} will be used + - If custom `.phplint.yml` config file is not found, [.phplint.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.phplint.yml){target=_blank} will be used [![phplint - GitHub](https://gh-card.dev/repos/overtrue/phplint.svg?fullname=)](https://github.com/overtrue/phplint){target=_blank} ## Configuration in MegaLinter -- Enable phplint by adding `PHP_PHPLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable phplint by adding `PHP_PHPLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable phplint by adding `PHP_PHPLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable phplint by adding `PHP_PHPLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -34,10 +34,10 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:---------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:---------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | ## Behind the scenes @@ -123,9 +123,12 @@ RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ && update-alternatives --install /usr/bin/php php /usr/bin/php8 10 # Linter install -RUN composer global require overtrue/phplint ^3.0 \ +RUN composer global require --ignore-platform-reqs overtrue/phplint ^3.0 \ && composer global config bin-dir --absolute -ENV PATH="/root/.composer/vendor/bin:$PATH" +RUN wget --tries=5 -q -O phplint.phar https://github.com/overtrue/phplint/releases/download/3.1.1/phplint.phar \ + && chmod +x phplint.phar \ + && mv phplint.phar /usr/local/bin/phplint + ``` diff --git a/docs/descriptors/php_phpstan.md b/docs/descriptors/php_phpstan.md index a1bec55a1b1..40e5fd55c93 100644 --- a/docs/descriptors/php_phpstan.md +++ b/docs/descriptors/php_phpstan.md @@ -7,15 +7,15 @@ - Version in MegaLinter: **1.7.15** - Visit [Official Web Site](https://phpstan.org/){target=_blank} - See [How to configure phpstan rules](https://phpstan.org/config-reference#neon-format){target=_blank} - - If custom `phpstan.neon.dist` config file is not found, [phpstan.neon.dist](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/phpstan.neon.dist){target=_blank} will be used + - If custom `phpstan.neon.dist` config file is not found, [phpstan.neon.dist](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/phpstan.neon.dist){target=_blank} will be used - See [How to disable phpstan rules in files](https://phpstan.org/user-guide/ignoring-errors#ignoring-in-code-using-phpdocs){target=_blank} [![phpstan - GitHub](https://gh-card.dev/repos/phpstan/phpstan.svg?fullname=)](https://github.com/phpstan/phpstan){target=_blank} ## Configuration in MegaLinter -- Enable phpstan by adding `PHP_PHPSTAN` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable phpstan by adding `PHP_PHPSTAN` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable phpstan by adding `PHP_PHPSTAN` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable phpstan by adding `PHP_PHPSTAN` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -38,17 +38,17 @@ Use phpstan in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|---------------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [PHPStan / Psalm / Generics](https://plugins.jetbrains.com/plugin/12754-phpstan--psalm--generics) | | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-phpstan](https://marketplace.visualstudio.com/items?itemName=calsmurf2904.vscode-phpstan) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/calsmurf2904.vscode-phpstan){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [PHPStan / Psalm / Generics](https://plugins.jetbrains.com/plugin/12754-phpstan--psalm--generics) | | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-phpstan](https://marketplace.visualstudio.com/items?itemName=calsmurf2904.vscode-phpstan) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/calsmurf2904.vscode-phpstan){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:---------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:---------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | ## Behind the scenes @@ -140,61 +140,3 @@ RUN phive --no-progress install phpstan -g --trust-gpg-keys CF1A108D0E7AE720 ``` - -### Example success log - -```shell -Results of phpstan linter (version 0.12.58) -See documentation on https://megalinter.github.io/descriptors/php_phpstan/ ------------------------------------------------ - -[SUCCESS] .automation/test/php/php_good_1.php - - [OK] No errors - -[SUCCESS] .automation/test/php/php_good_2.php - - [OK] No errors - -``` - -### Example error log - -```shell -Results of phpstan linter (version 0.12.58) -See documentation on https://megalinter.github.io/descriptors/php_phpstan/ ------------------------------------------------ - -[ERROR] .automation/test/php/php_bad_1.php - ------ ---------------------------------------------- - Line php_bad_1.php - ------ ---------------------------------------------- - 3 Invalid numeric literal on line 3 - 3 Invalid numeric literal on line 3 - 3 Syntax error, unexpected '=' on line 3 - 3 Syntax error, unexpected T_LNUMBER on line 3 - 3 Syntax error, unexpected T_STRING on line 3 - 3 Syntax error, unexpected T_STRING on line 3 - ------ ---------------------------------------------- - - [ERROR] Found 6 errors - - ::error file=mp/lint/.automation/test/php/php_bad_1.php,line=3,col=0::Invalid numeric literal on line 3 - ::error file=mp/lint/.automation/test/php/php_bad_1.php,line=3,col=0::Invalid numeric literal on line 3 - ::error file=mp/lint/.automation/test/php/php_bad_1.php,line=3,col=0::Syntax error, unexpected '=' on line 3 - ::error file=mp/lint/.automation/test/php/php_bad_1.php,line=3,col=0::Syntax error, unexpected T_LNUMBER on line 3 - ::error file=mp/lint/.automation/test/php/php_bad_1.php,line=3,col=0::Syntax error, unexpected T_STRING on line 3 - ::error file=mp/lint/.automation/test/php/php_bad_1.php,line=3,col=0::Syntax error, unexpected T_STRING on line 3 - -[ERROR] .automation/test/php/php_bad_2.php - ------ ----------------------------------------- - Line php_bad_2.php - ------ ----------------------------------------- - 15 Syntax error, unexpected '}' on line 15 - ------ ----------------------------------------- - - [ERROR] Found 1 error - - ::error file=mp/lint/.automation/test/php/php_bad_2.php,line=15,col=0::Syntax error, unexpected '}' on line 15 - -``` diff --git a/docs/descriptors/php_psalm.md b/docs/descriptors/php_psalm.md index 26c256f34e5..a1b49bb99c9 100644 --- a/docs/descriptors/php_psalm.md +++ b/docs/descriptors/php_psalm.md @@ -14,7 +14,7 @@ - Version in MegaLinter: **Psalm.5.x-dev@** - Visit [Official Web Site](https://psalm.dev){target=_blank} - See [How to configure psalm rules](https://psalm.dev/docs/running_psalm/configuration/){target=_blank} - - If custom `psalm.xml` config file is not found, [psalm.xml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/psalm.xml){target=_blank} will be used + - If custom `psalm.xml` config file is not found, [psalm.xml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/psalm.xml){target=_blank} will be used - See [How to disable psalm rules in files](https://psalm.dev/docs/running_psalm/dealing_with_code_issues/#docblock-suppression){target=_blank} - See [Index of problems detected by psalm](https://psalm.dev/docs/running_psalm/issues/){target=_blank} @@ -22,8 +22,8 @@ ## Configuration in MegaLinter -- Enable psalm by adding `PHP_PSALM` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable psalm by adding `PHP_PSALM` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable psalm by adding `PHP_PSALM` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable psalm by adding `PHP_PSALM` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -46,17 +46,17 @@ Use psalm in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|---------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [PHPStan / Psalm / Generics](https://plugins.jetbrains.com/plugin/12754-phpstan--psalm--generics) | | -| | [Visual Studio Code](https://code.visualstudio.com/) | [Psalm VsCode Plugin](https://marketplace.visualstudio.com/items?itemName=getpsalm.psalm-vscode-plugin) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/getpsalm.psalm-vscode-plugin){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [PHPStan / Psalm / Generics](https://plugins.jetbrains.com/plugin/12754-phpstan--psalm--generics) | | +| | [Visual Studio Code](https://code.visualstudio.com/) | [Psalm VsCode Plugin](https://marketplace.visualstudio.com/items?itemName=getpsalm.psalm-vscode-plugin) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/getpsalm.psalm-vscode-plugin){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:---------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:---------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | ## Behind the scenes @@ -273,152 +273,3 @@ RUN phive --no-progress install psalm -g --trust-gpg-keys 8A03EA3B385DBAA1,12CE0 ``` - -### Example success log - -```shell -Results of psalm linter (version 4.3.1) -See documentation on https://megalinter.github.io/descriptors/php_psalm/ ------------------------------------------------ - -[SUCCESS] .automation/test/php/php_good_1.php - Scanning files... - Analyzing files... - - ░ - ------------------------------ - No errors found! - ------------------------------ - - Checks took 0.25 seconds and used 39.379MB of memory - Psalm was unable to infer types in the codebase - -[SUCCESS] .automation/test/php/php_good_2.php - Scanning files... - Analyzing files... - - ░ - ------------------------------ - No errors found! - ------------------------------ - - Checks took 0.31 seconds and used 36.996MB of memory - Psalm was unable to infer types in the codebase - -``` - -### Example error log - -```shell -Results of psalm linter (version 4.3.1) -See documentation on https://megalinter.github.io/descriptors/php_psalm/ ------------------------------------------------ - -[ERROR] .automation/test/php/php_bad_1.php - Scanning files... - Analyzing files... - - E - - ERROR: ParseError - ../../...automation/test/php/php_bad_1.php:3:2 - Syntax error, unexpected T_STRING on line 3 (see https://psalm.dev/173) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ERROR: UndefinedConstant - ../../...automation/test/php/php_bad_1.php:3:2 - Const pe98y is not defined (see https://psalm.dev/020) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ERROR: UndefinedConstant - ../../...automation/test/php/php_bad_1.php:3:8 - Const r is not defined (see https://psalm.dev/020) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ERROR: UndefinedConstant - ../../...automation/test/php/php_bad_1.php:3:10 - Const n0u823n is not defined (see https://psalm.dev/020) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ERROR: ParseError - ../../...automation/test/php/php_bad_1.php:3:17 - Syntax error, unexpected '=' on line 3 (see https://psalm.dev/173) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ERROR: UndefinedConstant - ../../...automation/test/php/php_bad_1.php:3:18 - Const r is not defined (see https://psalm.dev/020) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ERROR: ParseError - ../../...automation/test/php/php_bad_1.php:3:21 - Invalid numeric literal on line 3 (see https://psalm.dev/173) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ERROR: UndefinedConstant - ../../...automation/test/php/php_bad_1.php:3:24 - Const u3 is not defined (see https://psalm.dev/020) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ERROR: UndefinedConstant - ../../...automation/test/php/php_bad_1.php:3:28 - Const r08u2q098ry is not defined (see https://psalm.dev/020) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ERROR: ParseError - ../../...automation/test/php/php_bad_1.php:3:40 - Syntax error, unexpected T_LNUMBER on line 3 (see https://psalm.dev/173) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ERROR: UndefinedConstant - ../../...automation/test/php/php_bad_1.php:3:42 - Const nq2yr09n2yr9 is not defined (see https://psalm.dev/020) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ERROR: UndefinedConstant - ../../...automation/test/php/php_bad_1.php:3:55 - Const y2n is not defined (see https://psalm.dev/020) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ERROR: ParseError - ../../...automation/test/php/php_bad_1.php:3:61 - Syntax error, unexpected T_STRING on line 3 (see https://psalm.dev/173) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ERROR: UndefinedConstant - ../../...automation/test/php/php_bad_1.php:3:61 - Const yr is not defined (see https://psalm.dev/020) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ERROR: UndefinedConstant - ../../...automation/test/php/php_bad_1.php:3:68 - Const yr3 is not defined (see https://psalm.dev/020) - 2pe98y r-n0u823n=r 092u3- r08u2q098ry 09nq2yr09n2yr9 y2n-93yr 298yr3 29 - - - ------------------------------ - 15 errors found - ------------------------------ - - Checks took 0.30 seconds and used 39.560MB of memory - Psalm was unable to infer types in the codebase - -[ERROR] .automation/test/php/php_bad_2.php - Scanning files... - Analyzing files... - - E - - ERROR: InvalidReturnType - ../../...automation/test/php/php_bad_2.php:4:12 - The declared return type 'array' for takesAnInt is incorrect, got 'array{int, string(hello)}' (see https://psalm.dev/011) - * @return array - - - ERROR: InvalidReturnStatement - ../../...automation/test/php/php_bad_2.php:7:12 - The inferred type 'array{int, string(hello)}' does not match the declared return type 'array' for takesAnInt (see https://psalm.dev/128) - return [$i, "hello"]; - - - ERROR: InvalidScalarArgument - ../../...automation/test/php/php_bad_2.php:11:12 - Argument 1 of takesAnInt expects int, string(some text) provided (see https://psalm.dev/012) - takesAnInt($data[0]); - - - ERROR: ParseError - ../../...automation/test/php/php_bad_2.php:15:1 - Syntax error, unexpected '}' on line 15 (see https://psalm.dev/173) - } elseif ($condition) {} - - - ------------------------------ - 4 errors found - ------------------------------ - Psalm can automatically fix 1 of these issues. - Run Psalm again with - --alter --issues=InvalidReturnType --dry-run - to see what it can fix. - ------------------------------ - - Checks took 0.32 seconds and used 36.047MB of memory - Psalm was unable to infer types in the codebase - -``` diff --git a/docs/descriptors/powershell.md b/docs/descriptors/powershell.md index 3d91dc0b431..054773960c3 100644 --- a/docs/descriptors/powershell.md +++ b/docs/descriptors/powershell.md @@ -1,6 +1,6 @@ - + # POWERSHELL ## Linters @@ -47,3 +47,5 @@ RUN mkdir -p ${PWSH_DIRECTORY} \ ``` +- APK packages (Linux): + - [icu-libs](https://pkgs.alpinelinux.org/packages?branch=edge&name=icu-libs) diff --git a/docs/descriptors/powershell_powershell.md b/docs/descriptors/powershell_powershell.md index 21dff051c85..1faf2c42711 100644 --- a/docs/descriptors/powershell_powershell.md +++ b/docs/descriptors/powershell_powershell.md @@ -7,15 +7,15 @@ - Version in MegaLinter: **7.2.5** - Visit [Official Web Site](https://github.com/PowerShell/PSScriptAnalyzer#readme){target=_blank} - See [How to configure powershell rules](https://github.com/PowerShell/PSScriptAnalyzer#explicit){target=_blank} - - If custom `.powershell-psscriptanalyzer.psd1` config file is not found, [.powershell-psscriptanalyzer.psd1](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.powershell-psscriptanalyzer.psd1){target=_blank} will be used + - If custom `.powershell-psscriptanalyzer.psd1` config file is not found, [.powershell-psscriptanalyzer.psd1](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.powershell-psscriptanalyzer.psd1){target=_blank} will be used - See [How to disable powershell rules in files](https://github.com/PowerShell/PSScriptAnalyzer#suppressing-rules){target=_blank} [![PSScriptAnalyzer - GitHub](https://gh-card.dev/repos/PowerShell/PSScriptAnalyzer.svg?fullname=)](https://github.com/PowerShell/PSScriptAnalyzer){target=_blank} ## Configuration in MegaLinter -- Enable powershell by adding `POWERSHELL_POWERSHELL` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable powershell by adding `POWERSHELL_POWERSHELL` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable powershell by adding `POWERSHELL_POWERSHELL` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable powershell by adding `POWERSHELL_POWERSHELL` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |---------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------| @@ -38,16 +38,16 @@ Use powershell in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|---------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode PowerShell extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/ms-vscode.PowerShell){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode PowerShell extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/ms-vscode.PowerShell){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | ## Behind the scenes @@ -398,116 +398,3 @@ ARG PSSA_VERSION='latest' RUN pwsh -c 'Install-Module -Name PSScriptAnalyzer -RequiredVersion ${PSSA_VERSION} -Scope AllUsers -Force' ``` - -### Example success log - -```shell -Results of powershell linter (version 7.1.0) -See documentation on https://megalinter.github.io/descriptors/powershell_powershell/ ------------------------------------------------ - -[SUCCESS] .automation/test/powershell/powershell_good_1.ps1 - - -[SUCCESS] .automation/test/powershell/powershell_good_1.psd1 - - -[SUCCESS] .automation/test/powershell/powershell_good_1.psm1 - - -``` - -### Example error log - -```shell -Results of powershell linter (version 7.1.0) -See documentation on https://megalinter.github.io/descriptors/powershell_powershell/ ------------------------------------------------ - -[ERROR] .automation/test/powershell/powershell_bad_1.ps1 - - RuleName Severity ScriptName Line Message - -------- -------- ---------- ---- ------- - PSAvoidUsingEmptyCatchBlock Warning powershell 12 Empty catch b - _bad_1.ps1 lock is used. - Please use W - rite-Error or - throw statem - ents in catch - blocks. - PSAvoidTrailingWhitespace Information powershell 11 Line has trai - _bad_1.ps1 ling whitespa - ce - PSAvoidUsingUsernameAndPasswordPara Error powershell 4 Function 'Bad - ms _bad_1.ps1 Function' has - both Usernam - e and Passwor - d parameters. - Either set t - he type of th - e Password pa - rameter to Se - cureString or - replace the - Username and - Password para - meters with a - Credential p - arameter of t - ype PSCredent - ial. If using - a Credential - parameter in - PowerShell 4 - .0 or earlier - , please defi - ne a credenti - al transforma - tion attribut - e after the P - SCredential t - ype attribute - . - PSAvoidUsingPlainTextForPassword Warning powershell 5 Parameter '$P - _bad_1.ps1 assword' shou - ld use Secure - String, other - wise this wil - l expose sens - itive informa - tion. See Con - vertTo-Secure - String for mo - re informatio - n. - PSUseDeclaredVarsMoreThanAssignment Warning powershell 9 The variable - s _bad_1.ps1 'VariableThat - IsNotUsedLate - r' is assigne - d but never u - sed. - -[ERROR] .automation/test/powershell/powershell_bad_1.psd1 - - RuleName Severity ScriptName Line Message - -------- -------- ---------- ---- ------- - TerminatorExpectedAtEndOfString ParseError powershell 2 The string is - _bad_1.psd missing the - 1 terminator: ' - . - MissingEndCurlyBrace ParseError powershell 1 Missing closi - _bad_1.psd ng '}' in sta - 1 tement block - or type defin - ition. - -[ERROR] .automation/test/powershell/powershell_bad_1.psm1 - - RuleName Severity ScriptName Line Message - -------- -------- ---------- ---- ------- - TerminatorExpectedAtEndOfString ParseError powershell 1 The string is - _bad_1.psm missing the - 1 terminator: " - . - -``` diff --git a/docs/descriptors/protobuf.md b/docs/descriptors/protobuf.md index a5f083dc467..4a030c943e7 100644 --- a/docs/descriptors/protobuf.md +++ b/docs/descriptors/protobuf.md @@ -1,6 +1,6 @@ - + # PROTOBUF ## Linters diff --git a/docs/descriptors/protobuf_protolint.md b/docs/descriptors/protobuf_protolint.md index a8209835cc0..67045cc09c1 100644 --- a/docs/descriptors/protobuf_protolint.md +++ b/docs/descriptors/protobuf_protolint.md @@ -7,17 +7,17 @@ - Version in MegaLinter: **0.38.2** - Visit [Official Web Site](https://github.com/yoheimuta/protolint#readme){target=_blank} - See [How to configure protolint rules](https://github.com/yoheimuta/protolint#rules){target=_blank} - - If custom `.protolintrc.yml` config file is not found, [.protolintrc.yml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.protolintrc.yml){target=_blank} will be used + - If custom `.protolintrc.yml` config file is not found, [.protolintrc.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.protolintrc.yml){target=_blank} will be used - See [Index of problems detected by protolint](https://github.com/yoheimuta/protolint#rules){target=_blank} [![protolint - GitHub](https://gh-card.dev/repos/yoheimuta/protolint.svg?fullname=)](https://github.com/yoheimuta/protolint){target=_blank} ## Configuration in MegaLinter -- Enable protolint by adding `PROTOBUF_PROTOLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable protolint by adding `PROTOBUF_PROTOLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable protolint by adding `PROTOBUF_PROTOLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable protolint by adding `PROTOBUF_PROTOLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `PROTOBUF_PROTOLINT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `PROTOBUF_PROTOLINT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -40,30 +40,28 @@ Use protolint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-----------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [Protocol Buffer Linter](https://plugins.jetbrains.com/plugin/12641-protocol-buffer-linter) | | -| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode Protolint](https://marketplace.visualstudio.com/items?itemName=Plex.vscode-protolint) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/Plex.vscode-protolint){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [Protocol Buffer Linter](https://plugins.jetbrains.com/plugin/12641-protocol-buffer-linter) | | +| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode Protolint](https://marketplace.visualstudio.com/items?itemName=Plex.vscode-protolint) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/Plex.vscode-protolint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -121,60 +119,3 @@ FROM yoheimuta/protolint:latest as protolint COPY --from=protolint /usr/local/bin/protolint /usr/bin/ ``` - -### Example success log - -```shell -Results of protolint linter (version 0.26.0) -See documentation on https://megalinter.github.io/descriptors/protobuf_protolint/ ------------------------------------------------ - -[SUCCESS] .automation/test/protobuf/protobuf_good_1.proto - - -``` - -### Example error log - -```shell -Results of protolint linter (version 0.26.0) -See documentation on https://megalinter.github.io/descriptors/protobuf_protolint/ ------------------------------------------------ - -[ERROR] .automation/test/protobuf/protobuf_bad_1.proto - [.automation/test/protobuf/protobuf_bad_1.proto:8:1] The order of Import is invalid. Check if the file is ordered in the correct manner. - [.automation/test/protobuf/protobuf_bad_1.proto:18:5] Found an incorrect indentation style " ". " " is correct. - [.automation/test/protobuf/protobuf_bad_1.proto:19:5] Found an incorrect indentation style " ". " " is correct. - [.automation/test/protobuf/protobuf_bad_1.proto:20:5] Found an incorrect indentation style " ". " " is correct. - [.automation/test/protobuf/protobuf_bad_1.proto:21:5] Found an incorrect indentation style " ". " " is correct. - [.automation/test/protobuf/protobuf_bad_1.proto:24:5] Found an incorrect indentation style " ". " " is correct. - [.automation/test/protobuf/protobuf_bad_1.proto:26:5] Found an incorrect indentation style " ". " " is correct. - [.automation/test/protobuf/protobuf_bad_1.proto:28:5] Found an incorrect indentation style " ". " " is correct. - [.automation/test/protobuf/protobuf_bad_1.proto:25:5] Found an incorrect indentation style " ". " " is correct. - [.automation/test/protobuf/protobuf_bad_1.proto:27:7] Found an incorrect indentation style " ". " " is correct. - [.automation/test/protobuf/protobuf_bad_1.proto:29:5] Found an incorrect indentation style " ". " " is correct. - [.automation/test/protobuf/protobuf_bad_1.proto:30:5] Found an incorrect indentation style " ". " " is correct. - [.automation/test/protobuf/protobuf_bad_1.proto:31:5] Found an incorrect indentation style " ". " " is correct. - [.automation/test/protobuf/protobuf_bad_1.proto:34:5] Found an incorrect indentation style " ". " " is correct. - [.automation/test/protobuf/protobuf_bad_1.proto:47:5] Found an incorrect indentation style " ". " " is correct. - [.automation/test/protobuf/protobuf_bad_1.proto:3:1] The line length is 91, but it must be shorter than 80 - [.automation/test/protobuf/protobuf_bad_1.proto:4:1] Package name "examplePb" must only contains lowercase letters, digits and/or periods. - [.automation/test/protobuf/protobuf_bad_1.proto:8:1] Imports are not sorted. - [.automation/test/protobuf/protobuf_bad_1.proto:9:1] Imports are not sorted. - [.automation/test/protobuf/protobuf_bad_1.proto:14:1] Imports are not sorted. - [.automation/test/protobuf/protobuf_bad_1.proto:15:1] Imports are not sorted. - [.automation/test/protobuf/protobuf_bad_1.proto:19:5] EnumField name "UNKNOWN" with zero value should have the suffix "UNSPECIFIED" - [.automation/test/protobuf/protobuf_bad_1.proto:17:1] Enum name "enumAllowingAlias" must be UpperCamelCase - [.automation/test/protobuf/protobuf_bad_1.proto:36:3] Field "inner_message" should avoid required for proto3 - [.automation/test/protobuf/protobuf_bad_1.proto:37:3] Group "Result" should be avoided for proto3 - [.automation/test/protobuf/protobuf_bad_1.proto:40:3] Group "Result" should be avoided for proto3 - [.automation/test/protobuf/protobuf_bad_1.proto:43:3] Group "Regular" should be avoided for proto3 - [.automation/test/protobuf/protobuf_bad_1.proto:29:5] Repeated field name "inner_message" must be pluralized name "inner_messages" - [.automation/test/protobuf/protobuf_bad_1.proto:40:3] Repeated group name "Result" must be pluralized name "Results" - [.automation/test/protobuf/protobuf_bad_1.proto:42:3] Repeated field name "paper" must be pluralized name "papers" - [.automation/test/protobuf/protobuf_bad_1.proto:43:3] Repeated group name "Regular" must be pluralized name "Regulars" - [.automation/test/protobuf/protobuf_bad_1.proto:23:1] Message name "outer" must be UpperCamelCase - [.automation/test/protobuf/protobuf_bad_1.proto:26:5] Message name "inner" must be UpperCamelCase - [.automation/test/protobuf/protobuf_bad_1.proto:47:5] RPC name "search" must be UpperCamelCase - -``` diff --git a/docs/descriptors/puppet.md b/docs/descriptors/puppet.md index 21d8105625b..844f000335a 100644 --- a/docs/descriptors/puppet.md +++ b/docs/descriptors/puppet.md @@ -1,6 +1,6 @@ - + # PUPPET ## Linters diff --git a/docs/descriptors/puppet_puppet_lint.md b/docs/descriptors/puppet_puppet_lint.md index f171c50e612..5c9562e743f 100644 --- a/docs/descriptors/puppet_puppet_lint.md +++ b/docs/descriptors/puppet_puppet_lint.md @@ -14,10 +14,10 @@ ## Configuration in MegaLinter -- Enable puppet-lint by adding `PUPPET_PUPPET_LINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable puppet-lint by adding `PUPPET_PUPPET_LINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable puppet-lint by adding `PUPPET_PUPPET_LINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable puppet-lint by adding `PUPPET_PUPPET_LINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `PUPPET_PUPPET_LINT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `PUPPET_PUPPET_LINT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -40,15 +40,15 @@ Use puppet-lint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-----------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------:| -| | [Visual Studio Code](https://code.visualstudio.com/) | [Puppet VsCode Extension](https://puppet-vscode.github.io/docs/features/linting/) | [Visit Web Site](https://puppet-vscode.github.io/docs/features/linting/){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [Puppet VsCode Extension](https://puppet-vscode.github.io/docs/features/linting/) | [Visit Web Site](https://puppet-vscode.github.io/docs/features/linting/){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes @@ -185,30 +185,3 @@ puppet-lint --fail-on-warnings --no-autoloader_layout-check --fix myfile.pp - GEM packages (Ruby) : - [puppet-lint](https://rubygems.org/gems/puppet-lint) - -### Example success log - -```shell -Results of puppet-lint linter (version 2.4.2) -See documentation on https://megalinter.github.io/descriptors/puppet_puppet_lint/ ------------------------------------------------ - -[SUCCESS] .automation/test/puppet/puppet_good_1.pp - - -``` - -### Example error log - -```shell -Results of puppet-lint linter (version 2.4.2) -See documentation on https://megalinter.github.io/descriptors/puppet_puppet_lint/ ------------------------------------------------ - -[ERROR] .automation/test/puppet/puppet_bad_1.pp - WARNING: class not documented on line 1 - WARNING: line has more than 140 characters on line 7 - WARNING: double quoted string containing no variables on line 4 - WARNING: double quoted string containing no variables on line 5 - -``` diff --git a/docs/descriptors/python.md b/docs/descriptors/python.md index cadf6a72360..2ec63766b6c 100644 --- a/docs/descriptors/python.md +++ b/docs/descriptors/python.md @@ -1,6 +1,6 @@ - + # PYTHON ## Linters diff --git a/docs/descriptors/python_bandit.md b/docs/descriptors/python_bandit.md index 785afbe61fc..c6e9a03872e 100644 --- a/docs/descriptors/python_bandit.md +++ b/docs/descriptors/python_bandit.md @@ -18,7 +18,7 @@ If you find it too harsh, you may define `PYTHON_BANDIT_DISABLE_ERRORS: true` in - Version in MegaLinter: **1.7.4** - Visit [Official Web Site](https://bandit.readthedocs.io/en/latest/){target=_blank} - See [How to configure bandit rules](https://bandit.readthedocs.io/en/latest/config.html#){target=_blank} - - If custom `.bandit.yml` config file is not found, [.bandit.yml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.bandit.yml){target=_blank} will be used + - If custom `.bandit.yml` config file is not found, [.bandit.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.bandit.yml){target=_blank} will be used - See [How to disable bandit rules in files](https://bandit.readthedocs.io/en/latest/config.html#suppressing-individual-lines){target=_blank} - See [Index of problems detected by bandit](https://bandit.readthedocs.io/en/latest/plugins/index.html#complete-test-plugin-listing){target=_blank} @@ -26,8 +26,8 @@ If you find it too harsh, you may define `PYTHON_BANDIT_DISABLE_ERRORS: true` in ## Configuration in MegaLinter -- Enable bandit by adding `PYTHON_BANDIT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable bandit by adding `PYTHON_BANDIT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable bandit by adding `PYTHON_BANDIT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable bandit by adding `PYTHON_BANDIT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -50,18 +50,19 @@ Use bandit in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [bandit-lint](https://atom.io/packages/bandit-lint) | [Visit Web Site](https://atom.io/packages/bandit-lint){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-bandit](https://github.com/SublimeLinter/SublimeLinter-bandit) | [Visit Web Site](https://github.com/SublimeLinter/SublimeLinter-bandit){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [Native Support](https://code.visualstudio.com/docs/python/linting#_bandit) | [Visit Web Site](https://code.visualstudio.com/docs/python/linting#_bandit){target=_blank} | +| | [Atom](https://atom.io/) | [bandit-lint](https://atom.io/packages/bandit-lint) | [Visit Web Site](https://atom.io/packages/bandit-lint){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-bandit](https://github.com/SublimeLinter/SublimeLinter-bandit) | [Visit Web Site](https://github.com/SublimeLinter/SublimeLinter-bandit){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [Native Support](https://code.visualstudio.com/docs/python/linting#_bandit) | [Visit Web Site](https://code.visualstudio.com/docs/python/linting#_bandit){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------|:------------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | ## Behind the scenes @@ -267,3 +268,4 @@ The following tests were discovered and loaded: - PIP packages (Python): - [bandit](https://pypi.org/project/bandit) + - [bandit_sarif_formatter](https://pypi.org/project/bandit_sarif_formatter) diff --git a/docs/descriptors/python_black.md b/docs/descriptors/python_black.md index 2e80917411e..d26a152a545 100644 --- a/docs/descriptors/python_black.md +++ b/docs/descriptors/python_black.md @@ -14,16 +14,16 @@ - Version in MegaLinter: **22.3.0** - Visit [Official Web Site](https://black.readthedocs.io/en/stable/){target=_blank} - See [How to configure black rules](https://black.readthedocs.io/en/stable/usage_and_configuration/the_basics.html#configuration-format){target=_blank} - - If custom `pyproject.toml` config file is not found, [pyproject.toml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/pyproject.toml){target=_blank} will be used + - If custom `pyproject.toml` config file is not found, [pyproject.toml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/pyproject.toml){target=_blank} will be used [![black - GitHub](https://gh-card.dev/repos/psf/black.svg?fullname=)](https://github.com/psf/black){target=_blank} ## Configuration in MegaLinter -- Enable black by adding `PYTHON_BLACK` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable black by adding `PYTHON_BLACK` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable black by adding `PYTHON_BLACK` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable black by adding `PYTHON_BLACK` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `PYTHON_BLACK` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `PYTHON_BLACK` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -46,22 +46,22 @@ Use black in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [python-black](https://atom.io/packages/python-black) | [Visit Web Site](https://atom.io/packages/python-black){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [blacken](https://github.com/pythonic-emacs/blacken) | [Visit Web Site](https://github.com/pythonic-emacs/blacken){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [reformatter.el](https://github.com/purcell/reformatter.el) | [Visit Web Site](https://github.com/purcell/reformatter.el){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [elpy](https://github.com/jorgenschaefer/elpy) | [Visit Web Site](https://github.com/jorgenschaefer/elpy){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [black](https://black.readthedocs.io/en/stable/editor_integration.html#pycharm-intellij-idea) | [Visit Web Site](https://black.readthedocs.io/en/stable/editor_integration.html#pycharm-intellij-idea){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [sublack](https://github.com/jgirardet/sublack) | [Visit Web Site](https://github.com/jgirardet/sublack){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode Python Extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/ms-python.python){target=_blank} | +| | [Atom](https://atom.io/) | [python-black](https://atom.io/packages/python-black) | [Visit Web Site](https://atom.io/packages/python-black){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [blacken](https://github.com/pythonic-emacs/blacken) | [Visit Web Site](https://github.com/pythonic-emacs/blacken){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [reformatter.el](https://github.com/purcell/reformatter.el) | [Visit Web Site](https://github.com/purcell/reformatter.el){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [elpy](https://github.com/jorgenschaefer/elpy) | [Visit Web Site](https://github.com/jorgenschaefer/elpy){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [black](https://black.readthedocs.io/en/stable/editor_integration.html#pycharm-intellij-idea) | [Visit Web Site](https://black.readthedocs.io/en/stable/editor_integration.html#pycharm-intellij-idea){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [sublack](https://github.com/jgirardet/sublack) | [Visit Web Site](https://github.com/jgirardet/sublack){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode Python Extension](https://marketplace.visualstudio.com/items?itemName=ms-python.python) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/ms-python.python){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes @@ -188,30 +188,3 @@ Options: - PIP packages (Python): - [black](https://pypi.org/project/black) - -### Example success log - -```shell -Results of black linter (version 19.10) -See documentation on https://megalinter.github.io/descriptors/python_black/ ------------------------------------------------ - -[SUCCESS] .automation/test/python/python_good_1.py - All done! ✨ 🍰 ✨ - 1 file would be left unchanged. - -``` - -### Example error log - -```shell -Results of black linter (version 19.10) -See documentation on https://megalinter.github.io/descriptors/python_black/ ------------------------------------------------ - -[ERROR] .automation/test/python/python_bad_1.py - error: cannot format .automation/test/python/python_bad_1.py: Cannot parse: 15:23: if github_token is None - Oh no! 💥 💔 💥 - 1 file would fail to reformat. - -``` diff --git a/docs/descriptors/python_flake8.md b/docs/descriptors/python_flake8.md index 5d114c75672..fd030aecee8 100644 --- a/docs/descriptors/python_flake8.md +++ b/docs/descriptors/python_flake8.md @@ -7,7 +7,7 @@ - Version in MegaLinter: **4.0.1** - Visit [Official Web Site](https://flake8.pycqa.org){target=_blank} - See [How to configure flake8 rules](https://flake8.pycqa.org/en/latest/user/configuration.html#project-configuration){target=_blank} - - If custom `.flake8` config file is not found, [.flake8](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.flake8){target=_blank} will be used + - If custom `.flake8` config file is not found, [.flake8](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.flake8){target=_blank} will be used - See [How to disable flake8 rules in files](https://flake8.pycqa.org/en/3.1.1/user/ignoring-errors.html#in-line-ignoring-errors){target=_blank} - See [Index of problems detected by flake8](https://flake8.pycqa.org/en/latest/user/error-codes.html){target=_blank} @@ -15,8 +15,8 @@ ## Configuration in MegaLinter -- Enable flake8 by adding `PYTHON_FLAKE8` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable flake8 by adding `PYTHON_FLAKE8` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable flake8 by adding `PYTHON_FLAKE8` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable flake8 by adding `PYTHON_FLAKE8` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -39,18 +39,18 @@ Use flake8 in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-----------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-flake8](https://atom.io/packages/linter-flake8) | [Visit Web Site](https://atom.io/packages/linter-flake8){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [flake8-support](https://plugins.jetbrains.com/plugin/11563-flake8-support) | | -| | [Visual Studio Code](https://code.visualstudio.com/) | [Native Support](https://code.visualstudio.com/docs/python/linting#_flake8) | [Visit Web Site](https://code.visualstudio.com/docs/python/linting#_flake8){target=_blank} | +| | [Atom](https://atom.io/) | [linter-flake8](https://atom.io/packages/linter-flake8) | [Visit Web Site](https://atom.io/packages/linter-flake8){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [flake8-support](https://plugins.jetbrains.com/plugin/11563-flake8-support) | | +| | [Visual Studio Code](https://code.visualstudio.com/) | [Native Support](https://code.visualstudio.com/docs/python/linting#_flake8) | [Visit Web Site](https://code.visualstudio.com/docs/python/linting#_flake8){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes @@ -186,42 +186,3 @@ Installed plugins: mccabe: 0.6.1, pycodestyle: 2.8.0, pyflakes: 2.4.0 - PIP packages (Python): - [flake8](https://pypi.org/project/flake8) - -### Example success log - -```shell -Results of flake8 linter (version 3.8.4) -See documentation on https://megalinter.github.io/descriptors/python_flake8/ ------------------------------------------------ - -[SUCCESS] .automation/test/python/python_good_1.py - - -``` - -### Example error log - -```shell -Results of flake8 linter (version 3.8.4) -See documentation on https://megalinter.github.io/descriptors/python_flake8/ ------------------------------------------------ - -[ERROR] .automation/test/python/python_bad_1.py - .automation/test/python/python_bad_1.py:6:13: E261 at least two spaces before inline comment - .automation/test/python/python_bad_1.py:7:31: E261 at least two spaces before inline comment - .automation/test/python/python_bad_1.py:8:16: E261 at least two spaces before inline comment - .automation/test/python/python_bad_1.py:11:67: E202 whitespace before ')' - .automation/test/python/python_bad_1.py:13:1: E128 continuation line under-indented for visual indent - .automation/test/python/python_bad_1.py:15:23: E999 SyntaxError: invalid syntax - .automation/test/python/python_bad_1.py:16:5: E113 unexpected indentation - .automation/test/python/python_bad_1.py:17:9: E128 continuation line under-indented for visual indent - .automation/test/python/python_bad_1.py:18:9: E128 continuation line under-indented for visual indent - .automation/test/python/python_bad_1.py:27:1: E302 expected 2 blank lines, found 1 - .automation/test/python/python_bad_1.py:56:1: E302 expected 2 blank lines, found 1 - .automation/test/python/python_bad_1.py:66:24: E201 whitespace after '{' - .automation/test/python/python_bad_1.py:87:1: E302 expected 2 blank lines, found 1 - .automation/test/python/python_bad_1.py:110:1: E302 expected 2 blank lines, found 1 - .automation/test/python/python_bad_1.py:153:1: E305 expected 2 blank lines after class or function definition, found 1 - .automation/test/python/python_bad_1.py:156:18: E261 at least two spaces before inline comment - -``` diff --git a/docs/descriptors/python_isort.md b/docs/descriptors/python_isort.md index 1eb70be0c0c..7530ecb6521 100644 --- a/docs/descriptors/python_isort.md +++ b/docs/descriptors/python_isort.md @@ -14,17 +14,17 @@ - Version in MegaLinter: **5.10.1** - Visit [Official Web Site](https://pycqa.github.io/isort/){target=_blank} - See [How to configure isort rules](https://pycqa.github.io/isort/docs/configuration/config_files/){target=_blank} - - If custom `.isort.cfg` config file is not found, [.isort.cfg](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.isort.cfg){target=_blank} will be used + - If custom `.isort.cfg` config file is not found, [.isort.cfg](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.isort.cfg){target=_blank} will be used - See [How to disable isort rules in files](https://pycqa.github.io/isort/docs/configuration/action_comments/){target=_blank} [![isort - GitHub](https://gh-card.dev/repos/PyCQA/isort.svg?fullname=)](https://github.com/PyCQA/isort){target=_blank} ## Configuration in MegaLinter -- Enable isort by adding `PYTHON_ISORT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable isort by adding `PYTHON_ISORT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable isort by adding `PYTHON_ISORT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable isort by adding `PYTHON_ISORT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `PYTHON_ISORT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `PYTHON_ISORT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -47,22 +47,22 @@ Use isort in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-----------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [atom-python-isort](https://github.com/bh/atom-python-isort) | [Visit Web Site](https://github.com/bh/atom-python-isort){target=_blank} | -| | [Atom](https://atom.io/) | [atom-isort](https://atom.io/packages/atom-isort) | [Visit Web Site](https://atom.io/packages/atom-isort){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [py-isort.el](https://github.com/paetzke/py-isort.el) | [Visit Web Site](https://github.com/paetzke/py-isort.el){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [isort plugin](https://github.com/jcugat/sublime-text-isort-plugin#install) | [Visit Web Site](https://github.com/jcugat/sublime-text-isort-plugin#install){target=_blank} | -| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | -| | [vim](https://www.vim.org/) | [vim-isort](https://github.com/fisadev/vim-isort#installation) | [Visit Web Site](https://github.com/fisadev/vim-isort#installation){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode Python Extension](https://github.com/Microsoft/vscode-python) | [Visit Web Site](https://github.com/Microsoft/vscode-python){target=_blank} | +| | [Atom](https://atom.io/) | [atom-python-isort](https://github.com/bh/atom-python-isort) | [Visit Web Site](https://github.com/bh/atom-python-isort){target=_blank} | +| | [Atom](https://atom.io/) | [atom-isort](https://atom.io/packages/atom-isort) | [Visit Web Site](https://atom.io/packages/atom-isort){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [py-isort.el](https://github.com/paetzke/py-isort.el) | [Visit Web Site](https://github.com/paetzke/py-isort.el){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [isort plugin](https://github.com/jcugat/sublime-text-isort-plugin#install) | [Visit Web Site](https://github.com/jcugat/sublime-text-isort-plugin#install){target=_blank} | +| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | +| | [vim](https://www.vim.org/) | [vim-isort](https://github.com/fisadev/vim-isort#installation) | [Visit Web Site](https://github.com/fisadev/vim-isort#installation){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode Python Extension](https://github.com/Microsoft/vscode-python) | [Visit Web Site](https://github.com/Microsoft/vscode-python){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes @@ -464,45 +464,3 @@ section output options: - PIP packages (Python): - [isort](https://pypi.org/project/isort) - [black](https://pypi.org/project/black) - -### Example success log - -```shell -Results of isort linter (version 5.6.4) -See documentation on https://megalinter.github.io/descriptors/python_isort/ ------------------------------------------------ - -[SUCCESS] .automation/test/python/python_good_1.py - - -``` - -### Example error log - -```shell -Results of isort linter (version 5.6.4) -See documentation on https://megalinter.github.io/descriptors/python_isort/ ------------------------------------------------ - -[ERROR] .automation/test/python/python_bad_1.py - ERROR: .automation/test/python/python_bad_1.py Imports are incorrectly sorted and/or formatted. - --- .automation/test/python/python_bad_1.py:before 2020-12-05 12:08:47.707389 - +++ .automation/test/python/python_bad_1.py:after 2020-12-05 12:34:28.504872 - @@ -1,11 +1,11 @@ - import json - +import sys - from os import getenv, path - from pprint import pprint - -import sys - - -import click # pylint: disable=import-error - -from dotenv import load_dotenv # pylint: disable=import-error - -import requests # pylint: disable=import-error - +import click # pylint: disable=import-error - +import requests # pylint: disable=import-error - +from dotenv import load_dotenv # pylint: disable=import-error - - env = load_dotenv() - api_url = getenv(API_URL, default='https://api.github.com/graphql' ) - -``` diff --git a/docs/descriptors/python_mypy.md b/docs/descriptors/python_mypy.md index 423759ca285..66693637bf9 100644 --- a/docs/descriptors/python_mypy.md +++ b/docs/descriptors/python_mypy.md @@ -18,15 +18,15 @@ If you don't use python static typing, you should disable this linter by adding - Version in MegaLinter: **0.961** - Visit [Official Web Site](https://mypy.readthedocs.io/en/stable/){target=_blank} - See [How to configure mypy rules](https://mypy.readthedocs.io/en/stable/config_file.html){target=_blank} - - If custom `.mypy.ini` config file is not found, [.mypy.ini](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.mypy.ini){target=_blank} will be used + - If custom `.mypy.ini` config file is not found, [.mypy.ini](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.mypy.ini){target=_blank} will be used - See [How to disable mypy rules in files](https://mypy.readthedocs.io/en/stable/inline_config.html#inline-config){target=_blank} [![mypy - GitHub](https://gh-card.dev/repos/python/mypy.svg?fullname=)](https://github.com/python/mypy){target=_blank} ## Configuration in MegaLinter -- Enable mypy by adding `PYTHON_MYPY` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable mypy by adding `PYTHON_MYPY` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable mypy by adding `PYTHON_MYPY` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable mypy by adding `PYTHON_MYPY` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -49,22 +49,22 @@ Use mypy in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|------------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-mypy](https://atom.io/packages/linter-mypy) | [Visit Web Site](https://atom.io/packages/linter-mypy){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [Flycheck mypy](https://github.com/lbolla/emacs-flycheck-mypy) | [Visit Web Site](https://github.com/lbolla/emacs-flycheck-mypy){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [mypy-official](https://plugins.jetbrains.com/plugin/13348-mypy-official-/) | [Visit Web Site](https://plugins.jetbrains.com/plugin/13348-mypy-official-/){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-mypy](https://github.com/fredcallaway/SublimeLinter-contrib-mypy) | [Visit Web Site](https://github.com/fredcallaway/SublimeLinter-contrib-mypy){target=_blank} | -| | [vim](https://www.vim.org/) | [Ale](https://github.com/dense-analysis/ale) | [Visit Web Site](https://github.com/dense-analysis/ale){target=_blank} | -| | [vim](https://www.vim.org/) | [Syntastic](https://github.com/vim-syntastic/syntastic) | [Visit Web Site](https://github.com/vim-syntastic/syntastic){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [Mypy](https://marketplace.visualstudio.com/items?itemName=matangover.mypy) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/matangover.mypy){target=_blank} | +| | [Atom](https://atom.io/) | [linter-mypy](https://atom.io/packages/linter-mypy) | [Visit Web Site](https://atom.io/packages/linter-mypy){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [Flycheck mypy](https://github.com/lbolla/emacs-flycheck-mypy) | [Visit Web Site](https://github.com/lbolla/emacs-flycheck-mypy){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [mypy-official](https://plugins.jetbrains.com/plugin/13348-mypy-official-/) | [Visit Web Site](https://plugins.jetbrains.com/plugin/13348-mypy-official-/){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-mypy](https://github.com/fredcallaway/SublimeLinter-contrib-mypy) | [Visit Web Site](https://github.com/fredcallaway/SublimeLinter-contrib-mypy){target=_blank} | +| | [vim](https://www.vim.org/) | [Ale](https://github.com/dense-analysis/ale) | [Visit Web Site](https://github.com/dense-analysis/ale){target=_blank} | +| | [vim](https://www.vim.org/) | [Syntastic](https://github.com/vim-syntastic/syntastic) | [Visit Web Site](https://github.com/vim-syntastic/syntastic){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [Mypy](https://marketplace.visualstudio.com/items?itemName=matangover.mypy) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/matangover.mypy){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes diff --git a/docs/descriptors/python_pylint.md b/docs/descriptors/python_pylint.md index c5d20dc16a2..f30ddd99f56 100644 --- a/docs/descriptors/python_pylint.md +++ b/docs/descriptors/python_pylint.md @@ -14,7 +14,7 @@ - Version in MegaLinter: **2.14.3** - Visit [Official Web Site](https://www.pylint.org){target=_blank} - See [How to configure pylint rules](https://github.com/PyCQA/pylint/blob/master/pylintrc){target=_blank} - - If custom `.python-lint` config file is not found, [.python-lint](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.python-lint){target=_blank} will be used + - If custom `.pylintrc` config file is not found, [.pylintrc](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.pylintrc){target=_blank} will be used - See [How to disable pylint rules in files](https://pylint.readthedocs.io/en/latest/user_guide/message-control.html){target=_blank} - See [Index of problems detected by pylint](http://pylint-messages.wikidot.com/all-codes){target=_blank} @@ -22,8 +22,8 @@ ## Configuration in MegaLinter -- Enable pylint by adding `PYTHON_PYLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable pylint by adding `PYTHON_PYLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable pylint by adding `PYTHON_PYLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable pylint by adding `PYTHON_PYLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -35,7 +35,7 @@ | PYTHON_PYLINT_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | | PYTHON_PYLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | | PYTHON_PYLINT_POST_COMMANDS | List of bash commands to run after the linter | None | -| PYTHON_PYLINT_CONFIG_FILE | pylint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.python-lint` | +| PYTHON_PYLINT_CONFIG_FILE | pylint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.pylintrc` | | PYTHON_PYLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | | PYTHON_PYLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | | PYTHON_PYLINT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | @@ -46,20 +46,20 @@ Use pylint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|---------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------:| -| | [Eclipse](https://www.eclipse.org/) | [PyLint](https://pydev.org/manual_adv_pylint.html) | [Visit Web Site](https://pydev.org/manual_adv_pylint.html){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [PyCharm (Native Support)](https://www.jetbrains.com/pycharm/) | [Visit Web Site](https://www.jetbrains.com/pycharm/){target=_blank} | -| | [vim](https://www.vim.org/) | [pylint.vim](https://www.vim.org/scripts/script.php?script_id=891) | [Visit Web Site](https://www.vim.org/scripts/script.php?script_id=891){target=_blank} | -| | visual_studio | [Native Support](https://docs.microsoft.com/fr-fr/visualstudio/python/linting-python-code?view=vs-2019) | [Visit Web Site](https://docs.microsoft.com/fr-fr/visualstudio/python/linting-python-code?view=vs-2019){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [Native Support](https://code.visualstudio.com/docs/python/linting#_pylint) | [Visit Web Site](https://code.visualstudio.com/docs/python/linting#_pylint){target=_blank} | +| | [Eclipse](https://www.eclipse.org/) | [PyLint](https://pydev.org/manual_adv_pylint.html) | [Visit Web Site](https://pydev.org/manual_adv_pylint.html){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [PyCharm (Native Support)](https://www.jetbrains.com/pycharm/) | [Visit Web Site](https://www.jetbrains.com/pycharm/){target=_blank} | +| | [vim](https://www.vim.org/) | [pylint.vim](https://www.vim.org/scripts/script.php?script_id=891) | [Visit Web Site](https://www.vim.org/scripts/script.php?script_id=891){target=_blank} | +| | visual_studio | [Native Support](https://docs.microsoft.com/fr-fr/visualstudio/python/linting-python-code?view=vs-2019) | [Visit Web Site](https://docs.microsoft.com/fr-fr/visualstudio/python/linting-python-code?view=vs-2019){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [Native Support](https://code.visualstudio.com/docs/python/linting#_pylint) | [Visit Web Site](https://code.visualstudio.com/docs/python/linting#_pylint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes @@ -714,28 +714,3 @@ Imports: - PIP packages (Python): - [pylint](https://pypi.org/project/pylint) - -### Example success log - -```shell -Results of pylint linter (version 2.6.0) -See documentation on https://megalinter.github.io/descriptors/python_pylint/ ------------------------------------------------ - -[SUCCESS] .automation/test/python/python_good_1.py - - -``` - -### Example error log - -```shell -Results of pylint linter (version 2.6.0) -See documentation on https://megalinter.github.io/descriptors/python_pylint/ ------------------------------------------------ - -[ERROR] .automation/test/python/python_bad_1.py - ************* Module python_bad_1 - .automation/test/python/python_bad_1.py:15:24: E0001: invalid syntax (, line 15) (syntax-error) - -``` diff --git a/docs/descriptors/r.md b/docs/descriptors/r.md index 7b6277464a4..069a21c0617 100644 --- a/docs/descriptors/r.md +++ b/docs/descriptors/r.md @@ -1,6 +1,6 @@ - + # R ## Linters diff --git a/docs/descriptors/r_lintr.md b/docs/descriptors/r_lintr.md index d8ff403ddd8..8809f491f2c 100644 --- a/docs/descriptors/r_lintr.md +++ b/docs/descriptors/r_lintr.md @@ -6,13 +6,13 @@ - Visit [Official Web Site](https://lintr.r-lib.org/){target=_blank} - See [How to configure lintr rules](https://lintr.r-lib.org/articles/lintr.html#configuring-linters){target=_blank} - - If custom `.lintr` config file is not found, [.lintr](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.lintr){target=_blank} will be used + - If custom `.lintr` config file is not found, [.lintr](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.lintr){target=_blank} will be used - See [Index of problems detected by lintr](https://lintr.r-lib.org/reference/index.html){target=_blank} ## Configuration in MegaLinter -- Enable lintr by adding `R_LINTR` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable lintr by adding `R_LINTR` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable lintr by adding `R_LINTR` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable lintr by adding `R_LINTR` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -35,20 +35,20 @@ Use lintr in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-----------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [Atom lintr](https://github.com/AtomLinter/linter-lintr) | [Visit Web Site](https://github.com/AtomLinter/linter-lintr){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](http://www.flycheck.org/en/latest/languages.html#r) | [Visit Web Site](http://www.flycheck.org/en/latest/languages.html#r){target=_blank} | -| | rstudio | [Native Support](https://rstudio.com/) | [Visit Web Site](https://rstudio.com/){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-lintr](https://github.com/jimhester/SublimeLinter-contrib-lintr) | [Visit Web Site](https://github.com/jimhester/SublimeLinter-contrib-lintr){target=_blank} | -| | [vim](https://www.vim.org/) | [ale](https://github.com/dense-analysis/ale) | [Visit Web Site](https://github.com/dense-analysis/ale){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode R LSP](https://marketplace.visualstudio.com/items?itemName=REditorSupport.r) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/REditorSupport.r){target=_blank} | +| | [Atom](https://atom.io/) | [Atom lintr](https://github.com/AtomLinter/linter-lintr) | [Visit Web Site](https://github.com/AtomLinter/linter-lintr){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](http://www.flycheck.org/en/latest/languages.html#r) | [Visit Web Site](http://www.flycheck.org/en/latest/languages.html#r){target=_blank} | +| | rstudio | [Native Support](https://rstudio.com/) | [Visit Web Site](https://rstudio.com/){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-lintr](https://github.com/jimhester/SublimeLinter-contrib-lintr) | [Visit Web Site](https://github.com/jimhester/SublimeLinter-contrib-lintr){target=_blank} | +| | [vim](https://www.vim.org/) | [ale](https://github.com/dense-analysis/ale) | [Visit Web Site](https://github.com/dense-analysis/ale){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode R LSP](https://marketplace.visualstudio.com/items?itemName=REditorSupport.r) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/REditorSupport.r){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes @@ -80,63 +80,23 @@ you could try ‘??lintr’ - Dockerfile commands : ```dockerfile -FROM ghcr.io/assignuser/lintr-lib:0.2.0 as lintr-lib -COPY --from=lintr-lib /usr/lib/R/library/ /home/r-library -RUN R -e "install.packages(list.dirs('/home/r-library',recursive = FALSE), repos = NULL, type = 'source')" +RUN mkdir -p /home/r-library \ + && cp -r /usr/lib/R/library/ /home/r-library/ \ + && Rscript -e "install.packages(c('lintr','purrr'), repos = 'https://cloud.r-project.org/')" \ + && R -e "install.packages(list.dirs('/home/r-library',recursive = FALSE), repos = NULL, type = 'source')" + ``` - APK packages (Linux): + - [gcc](https://pkgs.alpinelinux.org/packages?branch=edge&name=gcc) + - [g++](https://pkgs.alpinelinux.org/packages?branch=edge&name=g++) + - [libc-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=libc-dev) + - [libcurl](https://pkgs.alpinelinux.org/packages?branch=edge&name=libcurl) + - [libffi-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=libffi-dev) + - [libgcc](https://pkgs.alpinelinux.org/packages?branch=edge&name=libgcc) + - [libxml2-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=libxml2-dev) + - [libxml2-utils](https://pkgs.alpinelinux.org/packages?branch=edge&name=libxml2-utils) + - [linux-headers](https://pkgs.alpinelinux.org/packages?branch=edge&name=linux-headers) - [R](https://pkgs.alpinelinux.org/packages?branch=edge&name=R) - [R-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=R-dev) - [R-doc](https://pkgs.alpinelinux.org/packages?branch=edge&name=R-doc) - -### Example success log - -```shell -Results of lintr linter (version 2.0.1.9000) -See documentation on https://megalinter.github.io/descriptors/r_lintr/ ------------------------------------------------ - -[SUCCESS] .automation/test/r/r_good_1.r - Warning message: - In readLines(filename) : - incomplete final line found on '.automation/test/r/r_good_1.r' - -``` - -### Example error log - -```shell -Results of lintr linter (version 2.0.1.9000) -See documentation on https://megalinter.github.io/descriptors/r_lintr/ ------------------------------------------------ - -[ERROR] .automation/test/r/r_bad_1.r - style:.automation/test/r/r_bad_1.r:8:3::Use <-, not =, for assignment. - style:.automation/test/r/r_bad_1.r:8:14::Remove spaces before the left parenthesis in a function call. - style:.automation/test/r/r_bad_1.r:8:17::Commas should always have a space after. - style:.automation/test/r/r_bad_1.r:8:22::There should be a space between right parenthesis and an opening curly brace. - style:.automation/test/r/r_bad_1.r:8:23::Opening curly braces should never go on their own line and should always be followed by a new line. - style:.automation/test/r/r_bad_1.r:8:24::Closing curly-braces should always be on their own line, unless it's followed by an else. - style:.automation/test/r/r_bad_1.r:11:3::Commented code should be removed. - style:.automation/test/r/r_bad_1.r:21:1::functions should have cyclomatic complexity of less than 15, this has 22. - style:.automation/test/r/r_bad_1.r:21:1::Variable and function names should not be longer than 30 characters. - style:.automation/test/r/r_bad_1.r:21:1::Variable and function name style should be snake_case. - style:.automation/test/r/r_bad_1.r:22:1::Opening curly braces should never go on their own line and should always be followed by a new line. - style:.automation/test/r/r_bad_1.r:24:1::Lines should not be more than 80 characters. - style:.automation/test/r/r_bad_1.r:24:44::Put spaces around all infix operators. - warning:.automation/test/r/r_bad_1.r:24:57::Use is.na rather than == NA. - style:.automation/test/r/r_bad_1.r:24:64::Opening curly braces should never go on their own line and should always be followed by a new line. - style:.automation/test/r/r_bad_1.r:24:69::Closing curly-braces should always be on their own line, unless it's followed by an else. - style:.automation/test/r/r_bad_1.r:24:76::Opening curly braces should never go on their own line and should always be followed by a new line. - style:.automation/test/r/r_bad_1.r:24:82::Closing curly-braces should always be on their own line, unless it's followed by an else. - style:.automation/test/r/r_bad_1.r:31:3::Do not place spaces around code in parentheses or square brackets. - warning:.automation/test/r/r_bad_1.r:32:1::Avoid 1:length(...) expressions, use seq_len. - style:.automation/test/r/r_bad_1.r:32:37::Put spaces around all infix operators. - style:.automation/test/r/r_bad_1.r:32:43::`%>%` should always have a space before it and a new line after it, unless the full pipeline fits on one line. - style:.automation/test/r/r_bad_1.r:36:9::Only use double-quotes. - style:.automation/test/r/r_bad_1.r:40:8::Put spaces around all infix operators. - style:.automation/test/r/r_bad_1.r:40:9::Place a space before left parenthesis, except in a function call. - style:.automation/test/r/r_bad_1.r:43:1::Trailing blank lines are superfluous. - -``` diff --git a/docs/descriptors/raku.md b/docs/descriptors/raku.md index c74df1f537c..e6edf6e0d39 100644 --- a/docs/descriptors/raku.md +++ b/docs/descriptors/raku.md @@ -1,6 +1,6 @@ - + # RAKU ## Linters diff --git a/docs/descriptors/raku_raku.md b/docs/descriptors/raku_raku.md index 052dc115a85..c244183a4ad 100644 --- a/docs/descriptors/raku_raku.md +++ b/docs/descriptors/raku_raku.md @@ -11,8 +11,8 @@ ## Configuration in MegaLinter -- Enable raku by adding `RAKU_RAKU` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable raku by adding `RAKU_RAKU` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable raku by adding `RAKU_RAKU` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable raku by adding `RAKU_RAKU` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |---------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------| @@ -35,17 +35,17 @@ Use raku in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|--------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [language-perl6](https://atom.io/packages/language-perl6) | [Visit Web Site](https://atom.io/packages/language-perl6){target=_blank} | -| | comma | [Native Support](https://commaide.com/) | [Visit Web Site](https://commaide.com/){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [Perl6 Language Support](https://marketplace.visualstudio.com/items?itemName=scriplit.perl6-lsp) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/scriplit.perl6-lsp){target=_blank} | +| | [Atom](https://atom.io/) | [language-perl6](https://atom.io/packages/language-perl6) | [Visit Web Site](https://atom.io/packages/language-perl6){target=_blank} | +| | comma | [Native Support](https://commaide.com/) | [Visit Web Site](https://commaide.com/){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [Perl6 Language Support](https://marketplace.visualstudio.com/items?itemName=scriplit.perl6-lsp) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/scriplit.perl6-lsp){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes @@ -155,36 +155,9 @@ RUN curl -L https://github.com/nxadm/rakudo-pkg/releases/download/v2020.10-02/ra && apk add --no-cache --allow-untrusted rakudo-pkg-Alpine3.12_2020.10-02_x86_64.apk \ && rm rakudo-pkg-Alpine3.12_2020.10-02_x86_64.apk \ && /opt/rakudo-pkg/bin/add-rakudo-to-path \ - && source /root/.profile \ + # && source /root/.profile \ && /opt/rakudo-pkg/bin/install-zef-as-user ENV PATH="~/.raku/bin:/opt/rakudo-pkg/bin:/opt/rakudo-pkg/share/perl6/site/bin:$PATH" ``` - -### Example success log - -```shell -Results of raku linter (version 2020.11) -See documentation on https://megalinter.github.io/descriptors/raku_raku/ ------------------------------------------------ - -[SUCCESS] .automation/test/raku/raku_good_1.raku - Syntax OK - -``` - -### Example error log - -```shell -Results of raku linter (version 2020.11) -See documentation on https://megalinter.github.io/descriptors/raku_raku/ ------------------------------------------------ - -[ERROR] .automation/test/raku/raku_bad_1.raku - ===SORRY!=== Error while compiling .automation/test/raku/raku_bad_1.raku - Variable '$foo' is not declared. Did you mean '@foo'? - at .automation/test/raku/raku_bad_1.raku:4 - ------> ⏏$foo[1] = 42 - -``` diff --git a/docs/descriptors/repository.md b/docs/descriptors/repository.md new file mode 100644 index 00000000000..d53ed6bb8fa --- /dev/null +++ b/docs/descriptors/repository.md @@ -0,0 +1,28 @@ + + + +# REPOSITORY + +## Linters + +| Linter | Configuration key | Status | +|----------------------------------------|----------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------| +| [devskim](repository_devskim.md) | [REPOSITORY](repository_devskim.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/microsoft/DevSkim)](https://github.com/microsoft/DevSkim/commits) | +| [dustilock](repository_dustilock.md) | [REPOSITORY](repository_dustilock.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/Checkmarx/dustilock)](https://github.com/Checkmarx/dustilock/commits) | +| [git_diff](repository_git_diff.md) | [REPOSITORY](repository_git_diff.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | +| [gitleaks](repository_gitleaks.md) | [REPOSITORY](repository_gitleaks.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/zricethezav/gitleaks)](https://github.com/zricethezav/gitleaks/commits) | +| [goodcheck](repository_goodcheck.md) | [REPOSITORY](repository_goodcheck.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/sider/goodcheck)](https://github.com/sider/goodcheck/commits) | +| [secretlint](repository_secretlint.md) | [REPOSITORY](repository_secretlint.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | +| [semgrep](repository_semgrep.md) | [REPOSITORY](repository_semgrep.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/returntocorp/semgrep)](https://github.com/returntocorp/semgrep/commits) | +| [syft](repository_syft.md) | [REPOSITORY](repository_syft.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/anchore/syft)](https://github.com/anchore/syft/commits) | +| [trivy](repository_trivy.md) | [REPOSITORY](repository_trivy.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/aquasecurity/trivy)](https://github.com/aquasecurity/trivy/commits) | + +## Linted files + +## Configuration in MegaLinter + +| Variable | Description | Default value | +|---------------------------------|-------------------------------|---------------| +| REPOSITORY_FILTER_REGEX_INCLUDE | Custom regex including filter | | +| REPOSITORY_FILTER_REGEX_EXCLUDE | Custom regex excluding filter | | + diff --git a/docs/descriptors/repository_devskim.md b/docs/descriptors/repository_devskim.md new file mode 100644 index 00000000000..bdd9f652d58 --- /dev/null +++ b/docs/descriptors/repository_devskim.md @@ -0,0 +1,89 @@ + + +# devskim [![GitHub last commit](https://img.shields.io/github/last-commit/microsoft/DevSkim)](https://github.com/microsoft/DevSkim/commits) + +## devskim documentation + +- Visit [Official Web Site](https://github.com/microsoft/DevSkim#readme){target=_blank} + +[![DevSkim - GitHub](https://gh-card.dev/repos/microsoft/DevSkim.svg?fullname=)](https://github.com/microsoft/DevSkim){target=_blank} + +## Configuration in MegaLinter + +- Enable devskim by adding `REPOSITORY_DEVSKIM` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable devskim by adding `REPOSITORY_DEVSKIM` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| +| REPOSITORY_DEVSKIM_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| REPOSITORY_DEVSKIM_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | Exclude every file | +| REPOSITORY_DEVSKIM_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | +| REPOSITORY_DEVSKIM_PRE_COMMANDS | List of bash commands to run before the linter | None | +| REPOSITORY_DEVSKIM_POST_COMMANDS | List of bash commands to run after the linter | None | +| REPOSITORY_DEVSKIM_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| REPOSITORY_DEVSKIM_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | + +## IDE Integration + +Use devskim in your favorite IDE to catch errors before MegaLinter ! + +| | IDE | Extension Name | Install | +|:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-----------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode DevSkim](https://marketplace.visualstudio.com/items?itemName=MS-CST-E.vscode-devskim) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/MS-CST-E.vscode-devskim){target=_blank} | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | + +## Behind the scenes + +### How are identified applicable files + +- If this linter is active, all files will always be linted + + + +### How the linting is performed + +devskim is called once on the whole project directory + +- filtering can not be done using MegaLinter configuration variables,it must be done using devskim configuration or ignore file (if existing) +- `VALIDATE_ALL_CODEBASE: false` does not make devskim analyze only updated files + +### Example calls + +```shell +devskim analyze . +``` + +```shell +devskim analyze --file-format sarif . +``` + + +### Installation on mega-linter Docker image + +- Dockerfile commands : +```dockerfile +RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest + +ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" +RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI +``` + +- APK packages (Linux): + - [icu-libs](https://pkgs.alpinelinux.org/packages?branch=edge&name=icu-libs) + - [libcurl](https://pkgs.alpinelinux.org/packages?branch=edge&name=libcurl) + - [libintl](https://pkgs.alpinelinux.org/packages?branch=edge&name=libintl) + - [libssl1.1](https://pkgs.alpinelinux.org/packages?branch=edge&name=libssl1.1) + - [libstdc++](https://pkgs.alpinelinux.org/packages?branch=edge&name=libstdc++) + - [lttng-ust-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=lttng-ust-dev) + - [zlib](https://pkgs.alpinelinux.org/packages?branch=edge&name=zlib) + - [zlib-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=zlib-dev) diff --git a/docs/descriptors/repository_dustilock.md b/docs/descriptors/repository_dustilock.md new file mode 100644 index 00000000000..ffeb7ac2529 --- /dev/null +++ b/docs/descriptors/repository_dustilock.md @@ -0,0 +1,80 @@ + + + + + +[![GitHub last commit](https://img.shields.io/github/last-commit/Checkmarx/dustilock)](https://github.com/Checkmarx/dustilock/commits) + +## dustilock documentation + +- Visit [Official Web Site](https://github.com/Checkmarx/dustilock#readme){target=_blank} + +[![dustilock - GitHub](https://gh-card.dev/repos/Checkmarx/dustilock.svg?fullname=)](https://github.com/Checkmarx/dustilock){target=_blank} + +## Configuration in MegaLinter + +- Enable dustilock by adding `REPOSITORY_DUSTILOCK` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable dustilock by adding `REPOSITORY_DUSTILOCK` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|--------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| +| REPOSITORY_DUSTILOCK_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| REPOSITORY_DUSTILOCK_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | Exclude every file | +| REPOSITORY_DUSTILOCK_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | +| REPOSITORY_DUSTILOCK_PRE_COMMANDS | List of bash commands to run before the linter | None | +| REPOSITORY_DUSTILOCK_POST_COMMANDS | List of bash commands to run after the linter | None | +| REPOSITORY_DUSTILOCK_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| REPOSITORY_DUSTILOCK_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | + +## Behind the scenes + +### How are identified applicable files + +- If this linter is active, all files will always be linted + + + +### How the linting is performed + +dustilock is called once on the whole project directory + +- filtering can not be done using MegaLinter configuration variables,it must be done using dustilock configuration or ignore file (if existing) +- `VALIDATE_ALL_CODEBASE: false` does not make dustilock analyze only updated files + +### Example calls + +```shell +dustilock +``` + + +### Installation on mega-linter Docker image + +- Dockerfile commands : +```dockerfile +RUN ML_THIRD_PARTY_DIR=/download/dustilock && \ + mkdir -p ${ML_THIRD_PARTY_DIR} && \ + git clone https://github.com/Checkmarx/dustilock.git ${ML_THIRD_PARTY_DIR} && \ + cd ${ML_THIRD_PARTY_DIR} && \ + go build && \ + chmod +x dustilock && \ + mv "${ML_THIRD_PARTY_DIR}/dustilock" /usr/bin/ && \ + find ${ML_THIRD_PARTY_DIR} -type f -not -name 'LICENSE*' -delete -o -type d -empty -delete + +``` + +- APK packages (Linux): + - [go](https://pkgs.alpinelinux.org/packages?branch=edge&name=go) diff --git a/docs/descriptors/repository_git_diff.md b/docs/descriptors/repository_git_diff.md new file mode 100644 index 00000000000..42a5dacb309 --- /dev/null +++ b/docs/descriptors/repository_git_diff.md @@ -0,0 +1,124 @@ + + +# git_diff [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) + +Git diff checks for git conflicts markers in files + +## git_diff documentation + +- Version in MegaLinter: **2.30.3** +- Visit [Official Web Site](https://git-scm.com){target=_blank} + +[![git - GitHub](https://gh-card.dev/repos/git/git.svg?fullname=)](https://github.com/git/git){target=_blank} + +## Configuration in MegaLinter + +- Enable git_diff by adding `REPOSITORY_GIT_DIFF` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable git_diff by adding `REPOSITORY_GIT_DIFF` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|-------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| +| REPOSITORY_GIT_DIFF_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| REPOSITORY_GIT_DIFF_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | Exclude every file | +| REPOSITORY_GIT_DIFF_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | +| REPOSITORY_GIT_DIFF_PRE_COMMANDS | List of bash commands to run before the linter | None | +| REPOSITORY_GIT_DIFF_POST_COMMANDS | List of bash commands to run after the linter | None | +| REPOSITORY_GIT_DIFF_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| REPOSITORY_GIT_DIFF_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | + +## Behind the scenes + +### How are identified applicable files + +- If this linter is active, all files will always be linted + + + +### How the linting is performed + +git_diff is called once on the whole project directory + +- filtering can not be done using MegaLinter configuration variables,it must be done using git_diff configuration or ignore file (if existing) +- `VALIDATE_ALL_CODEBASE: false` does not make git_diff analyze only updated files + +### Example calls + +```shell +git diff --check +``` + + +### Help content + +```shell +usage: git [--version] [--help] [-C ] [-c =] + [--exec-path[=]] [--html-path] [--man-path] [--info-path] + [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare] + [--git-dir=] [--work-tree=] [--namespace=] + [] + +These are common Git commands used in various situations: + +start a working area (see also: git help tutorial) + clone Clone a repository into a new directory + init Create an empty Git repository or reinitialize an existing one + +work on the current change (see also: git help everyday) + add Add file contents to the index + mv Move or rename a file, a directory, or a symlink + restore Restore working tree files + rm Remove files from the working tree and from the index + sparse-checkout Initialize and modify the sparse-checkout + +examine the history and state (see also: git help revisions) + bisect Use binary search to find the commit that introduced a bug + diff Show changes between commits, commit and working tree, etc + grep Print lines matching a pattern + log Show commit logs + show Show various types of objects + status Show the working tree status + +grow, mark and tweak your common history + branch List, create, or delete branches + commit Record changes to the repository + merge Join two or more development histories together + rebase Reapply commits on top of another base tip + reset Reset current HEAD to the specified state + switch Switch branches + tag Create, list, delete or verify a tag object signed with GPG + +collaborate (see also: git help workflows) + fetch Download objects and refs from another repository + pull Fetch from and integrate with another repository or a local branch + push Update remote refs along with associated objects + +'git help -a' and 'git help -g' list available subcommands and some +concept guides. See 'git help ' or 'git help ' +to read about a specific subcommand or concept. +See 'git help git' for an overview of the system. +``` + +### Installation on mega-linter Docker image + +None diff --git a/docs/descriptors/repository_gitleaks.md b/docs/descriptors/repository_gitleaks.md new file mode 100644 index 00000000000..23fc0cfcb37 --- /dev/null +++ b/docs/descriptors/repository_gitleaks.md @@ -0,0 +1,141 @@ + + +# gitleaks [![GitHub last commit](https://img.shields.io/github/last-commit/zricethezav/gitleaks)](https://github.com/zricethezav/gitleaks/commits) + +## gitleaks documentation + +- Visit [Official Web Site](https://github.com/zricethezav/gitleaks#readme){target=_blank} +- See [How to configure gitleaks rules](https://github.com/zricethezav/gitleaks#configuration){target=_blank} + +[![gitleaks - GitHub](https://gh-card.dev/repos/zricethezav/gitleaks.svg?fullname=)](https://github.com/zricethezav/gitleaks){target=_blank} + +## Configuration in MegaLinter + +- Enable gitleaks by adding `REPOSITORY_GITLEAKS` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable gitleaks by adding `REPOSITORY_GITLEAKS` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|-------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| REPOSITORY_GITLEAKS_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| REPOSITORY_GITLEAKS_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | Exclude every file | +| REPOSITORY_GITLEAKS_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | +| REPOSITORY_GITLEAKS_PRE_COMMANDS | List of bash commands to run before the linter | None | +| REPOSITORY_GITLEAKS_POST_COMMANDS | List of bash commands to run after the linter | None | +| REPOSITORY_GITLEAKS_CONFIG_FILE | gitleaks configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.gitleaks.toml` | +| REPOSITORY_GITLEAKS_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| REPOSITORY_GITLEAKS_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| REPOSITORY_GITLEAKS_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | + +## Behind the scenes + +### How are identified applicable files + +- If this linter is active, all files will always be linted + + + +### How the linting is performed + +gitleaks is called once on the whole project directory + +- filtering can not be done using MegaLinter configuration variables,it must be done using gitleaks configuration or ignore file (if existing) +- `VALIDATE_ALL_CODEBASE: false` does not make gitleaks analyze only updated files + +### Example calls + +```shell +gitleaks detect --no-git --verbose --source . +``` + +```shell +gitleaks detect -c .gitleaks.toml --no-git --verbose --source . +``` + + +### Help content + +```shell +Usage: + C:\Users\33614\go\bin\gitleaks.EXE [OPTIONS] + +Application Options: + /v, /verbose Show verbose output from scan + /q, /quiet Sets log level to error and only output leaks, one + json object per line + /r, /repo-url: Repository URL + /p, /path: Path to directory (repo if contains .git) or file + /c, /config-path: Path to config + /repo-config-path: Path to gitleaks config relative to repo root + /clone-path: Path to clone repo to disk + /version Version number + /username: Username for git repo + /password: Password for git repo + /access-token: Access token for git repo + /threads: Maximum number of threads gitleaks spawns + /ssh-key: Path to ssh key used for auth + /unstaged Run gitleaks on unstaged code + /branch: Branch to scan + /redact Redact secrets from log messages and leaks + /debug Log debug messages + /no-git Treat git repos as plain directories and scan those + files + /leaks-exit-code: Exit code when leaks have been encountered + (default: 1) + /append-repo-config Append the provided or default config with the repo + config. + /additional-config: Path to an additional gitleaks config to append + with an existing config. Can be used with + --append-repo-config to append up to three + configurations + /o, /report: Report output path + /f, /format: json, csv, sarif (default: json) + /files-at-commit: Sha of commit to scan all files at commit + /commit: Sha of commit to scan or "latest" to scan the last + commit of the repository + /commits: Comma separated list of a commits to scan + /commits-file: Path to file of line separated list of commits to + scan + /commit-from: Commit to start scan from + /commit-to: Commit to stop scan + /commit-since: Scan commits more recent than a specific date. Ex: + '2006-01-02' or '2006-01-02T15:04:05-0700' format. + /commit-until: Scan commits older than a specific date. Ex: + '2006-01-02' or '2006-01-02T15:04:05-0700' format. + /depth: Number of commits to scan + +Help Options: + /? Show this help message + /h, /help Show this help message + +``` + +### Installation on mega-linter Docker image + +- Dockerfile commands : +```dockerfile +FROM zricethezav/gitleaks:v8.8.7 as gitleaks +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ +``` + diff --git a/docs/descriptors/repository_goodcheck.md b/docs/descriptors/repository_goodcheck.md new file mode 100644 index 00000000000..7904262d33f --- /dev/null +++ b/docs/descriptors/repository_goodcheck.md @@ -0,0 +1,96 @@ + + +# goodcheck [![GitHub last commit](https://img.shields.io/github/last-commit/sider/goodcheck)](https://github.com/sider/goodcheck/commits) + +## goodcheck documentation + +- Visit [Official Web Site](https://sider.github.io/goodcheck/){target=_blank} +- See [How to configure goodcheck rules](https://sider.github.io/goodcheck/docs/configuration){target=_blank} + - If custom `goodcheck.yml` config file is not found, [goodcheck.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/goodcheck.yml){target=_blank} will be used +- See [Index of problems detected by goodcheck](https://sider.github.io/goodcheck/docs/rules){target=_blank} + +[![goodcheck - GitHub](https://gh-card.dev/repos/sider/goodcheck.svg?fullname=)](https://github.com/sider/goodcheck){target=_blank} + +## Configuration in MegaLinter + +- Enable goodcheck by adding `REPOSITORY_GOODCHECK` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable goodcheck by adding `REPOSITORY_GOODCHECK` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|--------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| REPOSITORY_GOODCHECK_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| REPOSITORY_GOODCHECK_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | Exclude every file | +| REPOSITORY_GOODCHECK_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | +| REPOSITORY_GOODCHECK_PRE_COMMANDS | List of bash commands to run before the linter | None | +| REPOSITORY_GOODCHECK_POST_COMMANDS | List of bash commands to run after the linter | None | +| REPOSITORY_GOODCHECK_CONFIG_FILE | goodcheck configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `goodcheck.yml` | +| REPOSITORY_GOODCHECK_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| REPOSITORY_GOODCHECK_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| REPOSITORY_GOODCHECK_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | + +## Behind the scenes + +### How are identified applicable files + +- Activated only if one of these files is found: `goodcheck.yml` +- If this linter is active, all files will always be linted + + + +### How the linting is performed + +goodcheck is called once on the whole project directory + +- filtering can not be done using MegaLinter configuration variables,it must be done using goodcheck configuration or ignore file (if existing) +- `VALIDATE_ALL_CODEBASE: false` does not make goodcheck analyze only updated files + +### Example calls + +```shell +goodcheck check +``` + +```shell +goodcheck check -c goodcheck.yml +``` + + +### Help content + +```shell +Usage: goodcheck [options] [args...] + +Commands: + goodcheck init Generate a sample configuration file + goodcheck check Run check with a configuration + goodcheck test Test your configuration + goodcheck pattern Print regexp for rules + goodcheck version Print version + goodcheck help Show help and quit +``` + +### Installation on mega-linter Docker image + +- GEM packages (Ruby) : + - [goodcheck](https://rubygems.org/gems/goodcheck) diff --git a/docs/descriptors/repository_secretlint.md b/docs/descriptors/repository_secretlint.md new file mode 100644 index 00000000000..5a032df8b45 --- /dev/null +++ b/docs/descriptors/repository_secretlint.md @@ -0,0 +1,130 @@ + + + + + +[![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) + +## secretlint documentation + +- Version in MegaLinter: **4.1.0** +- Visit [Official Web Site](https://github.com/secretlint/secretlint#readme){target=_blank} +- See [How to configure secretlint rules](https://github.com/secretlint/secretlint#configuration){target=_blank} + - If custom `.secretlintrc.json` config file is not found, [.secretlintrc.json](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.secretlintrc.json){target=_blank} will be used +- See [Index of problems detected by secretlint](https://github.com/secretlint/secretlint#rule-packages){target=_blank} + +[![secretlint - GitHub](https://gh-card.dev/repos/secretlint/secretlint.svg?fullname=)](https://github.com/secretlint/secretlint){target=_blank} + +## Configuration in MegaLinter + +- Enable secretlint by adding `REPOSITORY_SECRETLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable secretlint by adding `REPOSITORY_SECRETLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|---------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| REPOSITORY_SECRETLINT_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| REPOSITORY_SECRETLINT_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | Exclude every file | +| REPOSITORY_SECRETLINT_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | +| REPOSITORY_SECRETLINT_PRE_COMMANDS | List of bash commands to run before the linter | None | +| REPOSITORY_SECRETLINT_POST_COMMANDS | List of bash commands to run after the linter | None | +| REPOSITORY_SECRETLINT_CONFIG_FILE | secretlint configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.secretlintrc.json` | +| REPOSITORY_SECRETLINT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| REPOSITORY_SECRETLINT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| REPOSITORY_SECRETLINT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | + +## Behind the scenes + +### How are identified applicable files + +- If this linter is active, all files will always be linted + + + +### How the linting is performed + +secretlint is called once on the whole project directory + +- filtering can not be done using MegaLinter configuration variables,it must be done using secretlint configuration or ignore file (if existing) +- `VALIDATE_ALL_CODEBASE: false` does not make secretlint analyze only updated files + +### Example calls + +```shell +secretlint "*/**" +``` + +```shell +secretlint --secretlintrc .secretlintrc.json "**/*" +``` + + +### Help content + +```shell + + Secretlint CLI that scan secret/credential data. + + Usage + $ secretlint [file|glob*] + + Note + supported glob syntax is based on microglob + https://github.com/micromatch/micromatch#matching-features + + Options + --init setup config file. Create .secretlintrc.json file from your package.json + --format [String] formatter name. Default: "stylish". Available Formatter: checkstyle, compact, jslint-xml, json, junit, pretty-error, stylish, tap, unix, table.d, table + --output [path:String] output file path that is written of reported result. + --no-color disable ANSI-color of output. + --no-terminalLink disable terminalLink of output. + --maskSecrets enable masking of secret values. replace actual secrets with "***". + --secretlintrc [path:String] path to .secretlintrc config file. Default: .secretlintrc.* + --secretlintignore [path:String] path to .secretlintignore file. Default: .secretlintignore + + Options for Developer + --profile Enable performance profile. + --secretlintrcJSON [String] a JSON string of .secretlintrc. use JSON string instead of rc file. + + Experimental Options + --locale [String] locale tag for translating message. Default: en + + Examples + $ secretlint ./README.md + # glob pattern should be wrapped with double quote + $ secretlint "**/*" + $ secretlint "source/**/*.ini" + +``` + +### Installation on mega-linter Docker image + +- NPM packages (node.js): + - [secretlint](https://www.npmjs.com/package/secretlint) + - [@secretlint/secretlint-rule-preset-recommend](https://www.npmjs.com/package/@secretlint/secretlint-rule-preset-recommend) + - [@secretlint/secretlint-formatter-sarif](https://www.npmjs.com/package/@secretlint/secretlint-formatter-sarif) diff --git a/docs/descriptors/repository_semgrep.md b/docs/descriptors/repository_semgrep.md new file mode 100644 index 00000000000..319efb0d966 --- /dev/null +++ b/docs/descriptors/repository_semgrep.md @@ -0,0 +1,100 @@ + + + + + +[![GitHub last commit](https://img.shields.io/github/last-commit/returntocorp/semgrep)](https://github.com/returntocorp/semgrep/commits) + +If you do not want to use default semgrep recommended rules, you can send them as arguments + +Example: `REPOSITORY_SEMGREP_ARGUMENTS: ["--config","p/ruleset1","p/ruleset2"]` + +## semgrep documentation + +- Visit [Official Web Site](https://semgrep.dev/){target=_blank} +- See [How to configure semgrep rules](https://semgrep.dev/docs/running-rules/){target=_blank} +- See [How to disable semgrep rules in files](https://semgrep.dev/docs/ignoring-findings/#inline-comments){target=_blank} +- See [Index of problems detected by semgrep](https://semgrep.dev/r){target=_blank} + +[![semgrep - GitHub](https://gh-card.dev/repos/returntocorp/semgrep.svg?fullname=)](https://github.com/returntocorp/semgrep){target=_blank} + +## Configuration in MegaLinter + +- Enable semgrep by adding `REPOSITORY_SEMGREP` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable semgrep by adding `REPOSITORY_SEMGREP` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| +| REPOSITORY_SEMGREP_RULESETS | List of semgrep rulesets identifiers that you want to enforce | `auto` | +| REPOSITORY_SEMGREP_RULESETS_TYPE | MegaLinter semgrep ruleset list preset id . Available values: security | `` | +| REPOSITORY_SEMGREP_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| REPOSITORY_SEMGREP_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | Exclude every file | +| REPOSITORY_SEMGREP_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | +| REPOSITORY_SEMGREP_PRE_COMMANDS | List of bash commands to run before the linter | None | +| REPOSITORY_SEMGREP_POST_COMMANDS | List of bash commands to run after the linter | None | +| REPOSITORY_SEMGREP_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| REPOSITORY_SEMGREP_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | + +## IDE Integration + +Use semgrep in your favorite IDE to catch errors before MegaLinter ! + +| | IDE | Extension Name | Install | +|:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|---------------------------------------------------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode SemGrep](https://marketplace.visualstudio.com/items?itemName=semgrep.semgrep) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/semgrep.semgrep){target=_blank} | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | + +## Behind the scenes + +### How are identified applicable files + +- If this linter is active, all files will always be linted + + + +### How the linting is performed + +semgrep is called once on the whole project directory + +- filtering can not be done using MegaLinter configuration variables,it must be done using semgrep configuration or ignore file (if existing) +- `VALIDATE_ALL_CODEBASE: false` does not make semgrep analyze only updated files + +### Example calls + +```shell +semgrep /tmp/lint +``` + +```shell +semgrep +``` + + +### Installation on mega-linter Docker image + +- PIP packages (Python): + - [semgrep](https://pypi.org/project/semgrep) diff --git a/docs/descriptors/repository_syft.md b/docs/descriptors/repository_syft.md new file mode 100644 index 00000000000..9cd19187417 --- /dev/null +++ b/docs/descriptors/repository_syft.md @@ -0,0 +1,74 @@ + + + + + +[![GitHub last commit](https://img.shields.io/github/last-commit/anchore/syft)](https://github.com/anchore/syft/commits) + +Builds a SBOM (Software Build Of Materials) from your repository + +## syft documentation + +- Visit [Official Web Site](https://github.com/anchore/syft#readme){target=_blank} + +[![syft - GitHub](https://gh-card.dev/repos/anchore/syft.svg?fullname=)](https://github.com/anchore/syft){target=_blank} + +## Configuration in MegaLinter + +- Enable syft by adding `REPOSITORY_SYFT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable syft by adding `REPOSITORY_SYFT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|---------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| +| REPOSITORY_SYFT_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| REPOSITORY_SYFT_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | Exclude every file | +| REPOSITORY_SYFT_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | +| REPOSITORY_SYFT_PRE_COMMANDS | List of bash commands to run before the linter | None | +| REPOSITORY_SYFT_POST_COMMANDS | List of bash commands to run after the linter | None | +| REPOSITORY_SYFT_CONFIG_FILE | syft configuration file name
Use `LINTER_DEFAULT` to let the linter find it | `.syft.yaml` | +| REPOSITORY_SYFT_RULES_PATH | Path where to find linter configuration file | Workspace folder, then MegaLinter default rules | +| REPOSITORY_SYFT_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| REPOSITORY_SYFT_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | + +## Behind the scenes + +### How are identified applicable files + +- If this linter is active, all files will always be linted + + + +### How the linting is performed + +syft is called once on the whole project directory + +- filtering can not be done using MegaLinter configuration variables,it must be done using syft configuration or ignore file (if existing) +- `VALIDATE_ALL_CODEBASE: false` does not make syft analyze only updated files + +### Example calls + +```shell +syft /tmp/lint +``` + + +### Installation on mega-linter Docker image + +- Dockerfile commands : +```dockerfile +RUN curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin +``` + diff --git a/docs/descriptors/repository_trivy.md b/docs/descriptors/repository_trivy.md new file mode 100644 index 00000000000..ab1a99424ef --- /dev/null +++ b/docs/descriptors/repository_trivy.md @@ -0,0 +1,94 @@ + + + + + +[![GitHub last commit](https://img.shields.io/github/last-commit/aquasecurity/trivy)](https://github.com/aquasecurity/trivy/commits) + +## trivy documentation + +- Visit [Official Web Site](https://aquasecurity.github.io/trivy/){target=_blank} + +[![trivy - GitHub](https://gh-card.dev/repos/aquasecurity/trivy.svg?fullname=)](https://github.com/aquasecurity/trivy){target=_blank} + +## Configuration in MegaLinter + +- Enable trivy by adding `REPOSITORY_TRIVY` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable trivy by adding `REPOSITORY_TRIVY` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) + +| Variable | Description | Default value | +|----------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| +| REPOSITORY_TRIVY_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | +| REPOSITORY_TRIVY_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | Exclude every file | +| REPOSITORY_TRIVY_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | +| REPOSITORY_TRIVY_PRE_COMMANDS | List of bash commands to run before the linter | None | +| REPOSITORY_TRIVY_POST_COMMANDS | List of bash commands to run after the linter | None | +| REPOSITORY_TRIVY_DISABLE_ERRORS | Run linter but consider errors as warnings | `false` | +| REPOSITORY_TRIVY_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | `0` | + +## IDE Integration + +Use trivy in your favorite IDE to catch errors before MegaLinter ! + +| | IDE | Extension Name | Install | +|:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode Trivy](https://marketplace.visualstudio.com/items?itemName=AquaSecurityOfficial.trivy-vulnerability-scanner) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/AquaSecurityOfficial.trivy-vulnerability-scanner){target=_blank} | + +## MegaLinter Flavours + +This linter is available in the following flavours + +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | + +## Behind the scenes + +### How are identified applicable files + +- If this linter is active, all files will always be linted + + + +### How the linting is performed + +trivy is called once on the whole project directory + +- filtering can not be done using MegaLinter configuration variables,it must be done using trivy configuration or ignore file (if existing) +- `VALIDATE_ALL_CODEBASE: false` does not make trivy analyze only updated files + +### Example calls + +```shell +trivy fs --security-checks vuln,config . +``` + + +### Installation on mega-linter Docker image + +- Dockerfile commands : +```dockerfile +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + +``` + diff --git a/docs/descriptors/rst.md b/docs/descriptors/rst.md index cab79ce633f..c985329e266 100644 --- a/docs/descriptors/rst.md +++ b/docs/descriptors/rst.md @@ -1,6 +1,6 @@ - + # RST ## Linters @@ -9,7 +9,6 @@ |-----------------------------|------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------| | [rst-lint](rst_rst_lint.md) | [RST](rst_rst_lint.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/twolfson/restructuredtext-lint)](https://github.com/twolfson/restructuredtext-lint/commits) | | [rstcheck](rst_rstcheck.md) | [RST](rst_rstcheck.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/myint/rstcheck)](https://github.com/myint/rstcheck/commits) | -| [rstfmt](rst_rstfmt.md) | [RST](rst_rstfmt.md) | [![GitHub last commit](https://img.shields.io/github/last-commit/dzhu/rstfmt)](https://github.com/dzhu/rstfmt/commits) | ## Linted files diff --git a/docs/descriptors/rst_rst_lint.md b/docs/descriptors/rst_rst_lint.md index d04af012f08..caba4a93c63 100644 --- a/docs/descriptors/rst_rst_lint.md +++ b/docs/descriptors/rst_rst_lint.md @@ -11,8 +11,8 @@ ## Configuration in MegaLinter -- Enable rst-lint by adding `RST_RST_LINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable rst-lint by adding `RST_RST_LINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable rst-lint by adding `RST_RST_LINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable rst-lint by adding `RST_RST_LINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -31,10 +31,10 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes @@ -85,27 +85,3 @@ optional arguments: - PIP packages (Python): - [restructuredtext_lint](https://pypi.org/project/restructuredtext_lint) - -### Example success log - -```shell -Results of rst-lint linter (version 1.3.2) -See documentation on https://megalinter.github.io/descriptors/rst_rst_lint/ ------------------------------------------------ - -[SUCCESS] .automation/test/rst/rst_good_1.rst - - -``` - -### Example error log - -```shell -Results of rst-lint linter (version 1.3.2) -See documentation on https://megalinter.github.io/descriptors/rst_rst_lint/ ------------------------------------------------ - -[ERROR] .automation/test/rst/rst_bad_1.rst - WARNING .automation/test/rst/rst_bad_1.rst:2 Title underline too short. - -``` diff --git a/docs/descriptors/rst_rstcheck.md b/docs/descriptors/rst_rstcheck.md index 70ce88d6fdf..ed3a7f4603d 100644 --- a/docs/descriptors/rst_rstcheck.md +++ b/docs/descriptors/rst_rstcheck.md @@ -13,8 +13,8 @@ ## Configuration in MegaLinter -- Enable rstcheck by adding `RST_RSTCHECK` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable rstcheck by adding `RST_RSTCHECK` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable rstcheck by adding `RST_RSTCHECK` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable rstcheck by adding `RST_RSTCHECK` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -37,16 +37,16 @@ Use rstcheck in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-restructuredtext](https://marketplace.visualstudio.com/items/lextudio.restructuredtext) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/lextudio.restructuredtext){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-restructuredtext](https://marketplace.visualstudio.com/items/lextudio.restructuredtext) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/lextudio.restructuredtext){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | ## Behind the scenes @@ -126,27 +126,3 @@ Options: - PIP packages (Python): - [rstcheck](https://pypi.org/project/rstcheck) - -### Example success log - -```shell -Results of rstcheck linter (version 3.3.1) -See documentation on https://megalinter.github.io/descriptors/rst_rstcheck/ ------------------------------------------------ - -[SUCCESS] .automation/test/rst/rst_good_1.rst - - -``` - -### Example error log - -```shell -Results of rstcheck linter (version 3.3.1) -See documentation on https://megalinter.github.io/descriptors/rst_rstcheck/ ------------------------------------------------ - -[ERROR] .automation/test/rst/rst_bad_1.rst - .automation/test/rst/rst_bad_1.rst:2: (WARNING/2) Title underline too short. - -``` diff --git a/docs/descriptors/rst_rstfmt.md b/docs/descriptors/rst_rstfmt.md index 84d44c0fa2a..ee13f9d366e 100644 --- a/docs/descriptors/rst_rstfmt.md +++ b/docs/descriptors/rst_rstfmt.md @@ -13,10 +13,10 @@ _This linter has been temporary disabled in this version_ ## Configuration in MegaLinter -- Enable rstfmt by adding `RST_RSTFMT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable rstfmt by adding `RST_RSTFMT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable rstfmt by adding `RST_RSTFMT` in [ENABLE_LINTERS variable](https://megalinter.github.io/v6-alpha/configuration/#activation-and-deactivation) +- Disable rstfmt by adding `RST_RSTFMT` in [DISABLE_LINTERS variable](https://megalinter.github.io/v6-alpha/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `RST_RSTFMT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `RST_RSTFMT` in [APPLY_FIXES variable](https://megalinter.github.io/v6-alpha/configuration/#apply-fixes) | Variable | Description | Default value | |----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -35,9 +35,9 @@ _This linter has been temporary disabled in this version_ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:----------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://megalinter.github.io/v6-alpha/supported-linters/) | Default MegaLinter Flavor | 102 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v6-alpha) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | ## Behind the scenes @@ -89,15 +89,3 @@ optional arguments: - PIP packages (Python): - [sphinx<4.0](https://pypi.org/project/sphinx<4.0) - [rstfmt](https://pypi.org/project/rstfmt) - -### Example success log - -```shell -Results of rstfmt linter (version 0.0.0) -See documentation on https://megalinter.github.io/descriptors/rst_rstfmt/ ------------------------------------------------ - -[SUCCESS] .automation/test/rst_rstfmt/rst_good_1.rst - - -``` diff --git a/docs/descriptors/ruby.md b/docs/descriptors/ruby.md index a1fd0a7bd04..0ed3f7888d1 100644 --- a/docs/descriptors/ruby.md +++ b/docs/descriptors/ruby.md @@ -1,6 +1,6 @@ - + # RUBY ## Linters @@ -21,13 +21,3 @@ | RUBY_FILTER_REGEX_INCLUDE | Custom regex including filter | | | RUBY_FILTER_REGEX_EXCLUDE | Custom regex excluding filter | | - -## Behind the scenes - -### Installation - -- APK packages (Linux): - - [ruby](https://pkgs.alpinelinux.org/packages?branch=edge&name=ruby) - - [ruby-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=ruby-dev) - - [ruby-bundler](https://pkgs.alpinelinux.org/packages?branch=edge&name=ruby-bundler) - - [ruby-rdoc](https://pkgs.alpinelinux.org/packages?branch=edge&name=ruby-rdoc) diff --git a/docs/descriptors/ruby_rubocop.md b/docs/descriptors/ruby_rubocop.md index 847ff4ba785..33d5a18a11e 100644 --- a/docs/descriptors/ruby_rubocop.md +++ b/docs/descriptors/ruby_rubocop.md @@ -14,7 +14,7 @@ - Version in MegaLinter: **1.30.1** - Visit [Official Web Site](https://rubocop.org/){target=_blank} - See [How to configure rubocop rules](https://docs.rubocop.org/rubocop/0.92/configuration.html){target=_blank} - - If custom `.ruby-lint.yml` config file is not found, [.ruby-lint.yml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.ruby-lint.yml){target=_blank} will be used + - If custom `.ruby-lint.yml` config file is not found, [.ruby-lint.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.ruby-lint.yml){target=_blank} will be used - See [How to disable rubocop rules in files](https://docs.rubocop.org/rubocop/0.92/configuration.html#disabling-cops-within-source-code){target=_blank} - See [Index of problems detected by rubocop](https://docs.rubocop.org/rubocop/cops.html){target=_blank} @@ -22,10 +22,10 @@ ## Configuration in MegaLinter -- Enable rubocop by adding `RUBY_RUBOCOP` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable rubocop by adding `RUBY_RUBOCOP` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable rubocop by adding `RUBY_RUBOCOP` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable rubocop by adding `RUBY_RUBOCOP` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `RUBY_RUBOCOP` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `RUBY_RUBOCOP` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -48,24 +48,24 @@ Use rubocop in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:---------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-rubocop](https://github.com/AtomLinter/linter-rubocop) | [Visit Web Site](https://github.com/AtomLinter/linter-rubocop){target=_blank} | -| | [Brackets](http://brackets.io/) | [brackets-rubocop](https://github.com/smockle-archive/brackets-rubocop) | [Visit Web Site](https://github.com/smockle-archive/brackets-rubocop){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [rubocop-emacs](https://github.com/rubocop-hq/rubocop-emacs) | [Visit Web Site](https://github.com/rubocop-hq/rubocop-emacs){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](https://github.com/flycheck/flycheck) | [Visit Web Site](https://github.com/flycheck/flycheck){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [RubyMine](https://www.jetbrains.com/help/idea/2017.1/rubocop.html) | [Visit Web Site](https://www.jetbrains.com/help/idea/2017.1/rubocop.html){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [sublime_rubocop](https://github.com/pderichs/sublime_rubocop) | [Visit Web Site](https://github.com/pderichs/sublime_rubocop){target=_blank} | -| | [vim](https://www.vim.org/) | [vim-rubocop](https://github.com/ngmy/vim-rubocop) | [Visit Web Site](https://github.com/ngmy/vim-rubocop){target=_blank} | -| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode Ruby Extension](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/rebornix.Ruby){target=_blank} | +| | [Atom](https://atom.io/) | [linter-rubocop](https://github.com/AtomLinter/linter-rubocop) | [Visit Web Site](https://github.com/AtomLinter/linter-rubocop){target=_blank} | +| | [Brackets](http://brackets.io/) | [brackets-rubocop](https://github.com/smockle-archive/brackets-rubocop) | [Visit Web Site](https://github.com/smockle-archive/brackets-rubocop){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [rubocop-emacs](https://github.com/rubocop-hq/rubocop-emacs) | [Visit Web Site](https://github.com/rubocop-hq/rubocop-emacs){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](https://github.com/flycheck/flycheck) | [Visit Web Site](https://github.com/flycheck/flycheck){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [RubyMine](https://www.jetbrains.com/help/idea/2017.1/rubocop.html) | [Visit Web Site](https://www.jetbrains.com/help/idea/2017.1/rubocop.html){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [sublime_rubocop](https://github.com/pderichs/sublime_rubocop) | [Visit Web Site](https://github.com/pderichs/sublime_rubocop){target=_blank} | +| | [vim](https://www.vim.org/) | [vim-rubocop](https://github.com/ngmy/vim-rubocop) | [Visit Web Site](https://github.com/ngmy/vim-rubocop){target=_blank} | +| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode Ruby Extension](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/rebornix.Ruby){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:----------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:----------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | ## Behind the scenes @@ -247,52 +247,3 @@ General Options: - [rubocop-performance](https://rubygems.org/gems/rubocop-performance) - [rubocop-rails](https://rubygems.org/gems/rubocop-rails) - [rubocop-rspec](https://rubygems.org/gems/rubocop-rspec) - -### Example success log - -```shell -Results of rubocop linter (version 0.82.0) -See documentation on https://megalinter.github.io/descriptors/ruby_rubocop/ ------------------------------------------------ - -[SUCCESS] .automation/test/ruby/ruby_good_1.rb - Inspecting 1 file - . - - 1 file inspected, no offenses detected - -``` - -### Example error log - -```shell -Results of rubocop linter (version 0.82.0) -See documentation on https://megalinter.github.io/descriptors/ruby_rubocop/ ------------------------------------------------ - -[ERROR] .automation/test/ruby/ruby_bad_1.rb - Inspecting 1 file - C - - Offenses: - - mp/lint/.automation/test/ruby/ruby_bad_1.rb:1:1: C: Style/FrozenStringLiteralComment: Missing frozen string literal comment. - mp/lint/.automation/test/ruby/ruby_bad_1.rb:11:11: C: Style/StringLiterals: Prefer double-quoted strings unless you need single quotes to avoid extra backslashes for escaping. - File.open('/tmp/urls.txt', " w" ) do | file| - ^^^^^^^^^^^^^^^ - mp/lint/.automation/test/ruby/ruby_bad_1.rb:11:32: C: Layout/SpaceInsideParens: Space inside parentheses detected. - File.open('/tmp/urls.txt', " w" ) do | file| - ^ - mp/lint/.automation/test/ruby/ruby_bad_1.rb:11:39: C: Layout/SpaceAroundBlockParameters: Space before first block parameter detected. - File.open('/tmp/urls.txt', " w" ) do | file| - ^ - mp/lint/.automation/test/ruby/ruby_bad_1.rb:12:24: C: Layout/SpaceAroundBlockParameters: Space after last block parameter detected. - Hook.active.map do |h | - ^ - mp/lint/.automation/test/ruby/ruby_bad_1.rb:13:13: C: Layout/SpaceInsideArrayLiteralBrackets: Do not use space inside array brackets. - urls = [ ARRAY_OF_URLS_CALLING_INSTANCE] - ^ - - 1 file inspected, 6 offenses detected - -``` diff --git a/docs/descriptors/rust.md b/docs/descriptors/rust.md index 47d31605855..1fb15f5dcd4 100644 --- a/docs/descriptors/rust.md +++ b/docs/descriptors/rust.md @@ -1,6 +1,6 @@ - + # RUST ## Linters diff --git a/docs/descriptors/rust_clippy.md b/docs/descriptors/rust_clippy.md index 3ea9fd75ee9..a4b3e9249cb 100644 --- a/docs/descriptors/rust_clippy.md +++ b/docs/descriptors/rust_clippy.md @@ -14,8 +14,8 @@ ## Configuration in MegaLinter -- Enable clippy by adding `RUST_CLIPPY` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable clippy by adding `RUST_CLIPPY` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable clippy by adding `RUST_CLIPPY` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable clippy by adding `RUST_CLIPPY` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-----------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -35,16 +35,16 @@ Use clippy in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-----------------------------------------------------------------------------------------------------------------------------------------:|--------------------------|-------------------------------------------------------------|:---------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [Atom IDE Rest](https://github.com/rust-lang/atom-ide-rust) | [Visit Web Site](https://github.com/rust-lang/atom-ide-rust){target=_blank} | +| | [Atom](https://atom.io/) | [Atom IDE Rest](https://github.com/rust-lang/atom-ide-rust) | [Visit Web Site](https://github.com/rust-lang/atom-ide-rust){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:----------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:----------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | ## Behind the scenes @@ -122,54 +122,3 @@ ENV PATH="/root/.cargo/bin:${PATH}" RUN rustup component add clippy ``` - -### Example success log - -```shell -Results of clippy linter (version 0.0.212) -See documentation on https://megalinter.github.io/descriptors/rust_clippy/ ------------------------------------------------ - -[SUCCESS] .automation/test/rust/good - Checking megalinter v1.0.0 (.automation/test/rust/good) - warning: function is never used: `main` - --> rust_good_1.rs:9:4 - | - 9 | fn main() { - | ^^^^ - | - = note: `#[warn(dead_code)]` on by default - - warning: 1 warning emitted - - Finished dev [unoptimized + debuginfo] target(s) in 0.24s - -``` - -### Example error log - -```shell -Results of clippy linter (version 0.0.212) -See documentation on https://megalinter.github.io/descriptors/rust_clippy/ ------------------------------------------------ - -[ERROR] .automation/test/rust/bad - Checking megalinter v1.0.0 (.automation/test/rust/bad) - error: mismatched closing delimiter: `}` - --> rust_bad_1.rs:14:1 - | - 9 | fn main() { - | - closing delimiter possibly meant for this - ... - 13 | println!("Hello World!" - | - unclosed delimiter - 14 | } - | ^ mismatched closing delimiter - - error: aborting due to previous error - - error: could not compile `megalinter` - - To learn more, run the command again with --verbose. - -``` diff --git a/docs/descriptors/salesforce.md b/docs/descriptors/salesforce.md index 16ec247e195..0113b2d509d 100644 --- a/docs/descriptors/salesforce.md +++ b/docs/descriptors/salesforce.md @@ -1,6 +1,6 @@ - + # SALESFORCE ## Linters diff --git a/docs/descriptors/salesforce_sfdx_scanner_apex.md b/docs/descriptors/salesforce_sfdx_scanner_apex.md index e1d82dd9fe1..706013c1cd5 100644 --- a/docs/descriptors/salesforce_sfdx_scanner_apex.md +++ b/docs/descriptors/salesforce_sfdx_scanner_apex.md @@ -17,7 +17,7 @@ See more details in [Help](#help-content) - Version in MegaLinter: **2.13.5** - Visit [Official Web Site](https://forcedotcom.github.io/sfdx-scanner/){target=_blank} - See [How to configure sfdx-scanner-apex rules](https://pmd.github.io/latest/pmd_userdocs_making_rulesets.html){target=_blank} - - If custom `apex-pmd-ruleset.xml` config file is not found, [apex-pmd-ruleset.xml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/apex-pmd-ruleset.xml){target=_blank} will be used + - If custom `apex-pmd-ruleset.xml` config file is not found, [apex-pmd-ruleset.xml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/apex-pmd-ruleset.xml){target=_blank} will be used - See [How to disable sfdx-scanner-apex rules in files](https://pmd.github.io/latest/pmd_userdocs_suppressing_warnings.html){target=_blank} - See [Index of problems detected by sfdx-scanner-apex](https://pmd.github.io/latest/pmd_rules_apex.html){target=_blank} @@ -25,8 +25,8 @@ See more details in [Help](#help-content) ## Configuration in MegaLinter -- Enable sfdx-scanner-apex by adding `SALESFORCE_SFDX_SCANNER_APEX` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable sfdx-scanner-apex by adding `SALESFORCE_SFDX_SCANNER_APEX` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable sfdx-scanner-apex by adding `SALESFORCE_SFDX_SCANNER_APEX` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable sfdx-scanner-apex by adding `SALESFORCE_SFDX_SCANNER_APEX` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -47,19 +47,19 @@ Use sfdx-scanner-apex in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Eclipse](https://www.eclipse.org/) | [pmd-eclipse-plugin](https://github.com/pmd/pmd-eclipse-plugin) | [Visit Web Site](https://github.com/pmd/pmd-eclipse-plugin){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [pmd-emacs](https://github.com/pmd/pmd-emacs/) | [Visit Web Site](https://github.com/pmd/pmd-emacs/){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [PMD IntelliJ](https://plugins.jetbrains.com/plugin/1137-pmdplugin) | | -| | [Visual Studio Code](https://code.visualstudio.com/) | [Salesforce Extension Pack](https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/salesforce.salesforcedx-vscode){target=_blank} | +| | [Eclipse](https://www.eclipse.org/) | [pmd-eclipse-plugin](https://github.com/pmd/pmd-eclipse-plugin) | [Visit Web Site](https://github.com/pmd/pmd-eclipse-plugin){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [pmd-emacs](https://github.com/pmd/pmd-emacs/) | [Visit Web Site](https://github.com/pmd/pmd-emacs/){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [PMD IntelliJ](https://plugins.jetbrains.com/plugin/1137-pmdplugin) | | +| | [Visual Studio Code](https://code.visualstudio.com/) | [Salesforce Extension Pack](https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/salesforce.salesforcedx-vscode){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------|:----------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------|:----------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | ## Behind the scenes @@ -236,7 +236,7 @@ VfCsrf visualforce Security VfHtmlStyleTagXss visualforce Security pmd VfUnescapeEl visualforce Security Basic VF pmd ApexAssertionsShouldIncludeMessage apex Best Practices pmd -ApexUnitTestClassShouldHaveAsserts apex Best Practices ApexUnit,Default ruleset...,quickstart pmd +ApexUnitTestClassShouldHaveAsserts apex Best Practices Default ruleset...,ApexUnit,quickstart pmd ApexUnitTestMethodShouldHaveIsTestAnnotation apex Best Practices pmd ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices ApexUnit,Default ruleset...,quickstart pmd AvoidGlobalModifier apex Best Practices Default ruleset...,Style,quickstart pmd @@ -289,11 +289,11 @@ ApexCSRF apex Error Prone AvoidDirectAccessTriggerMap apex Error Prone Default ruleset...,Style,quickstart pmd AvoidHardcodingId apex Error Prone Default ruleset...,Style,quickstart pmd AvoidNonExistentAnnotations apex Error Prone Default ruleset...,quickstart pmd -EmptyCatchBlock apex Error Prone Default ruleset...,Empty Code,quickstart pmd -EmptyIfStmt apex Error Prone Default ruleset...,Empty Code,quickstart pmd -EmptyStatementBlock apex Error Prone Default ruleset...,Empty Code,quickstart pmd -EmptyTryOrFinallyBlock apex Error Prone Default ruleset...,Empty Code,quickstart pmd -EmptyWhileStmt apex Error Prone Default ruleset...,Empty Code,quickstart pmd +EmptyCatchBlock apex Error Prone Default ruleset...,quickstart,Empty Code pmd +EmptyIfStmt apex Error Prone Default ruleset...,quickstart,Empty Code pmd +EmptyStatementBlock apex Error Prone Default ruleset...,quickstart,Empty Code pmd +EmptyTryOrFinallyBlock apex Error Prone Default ruleset...,quickstart,Empty Code pmd +EmptyWhileStmt apex Error Prone Default ruleset...,quickstart,Empty Code pmd InaccessibleAuraEnabledGetter apex Error Prone pmd MethodWithSameNameAsEnclosingClass apex Error Prone Default ruleset...,Style,quickstart pmd OverrideBothEqualsAndHashcode apex Error Prone pmd diff --git a/docs/descriptors/salesforce_sfdx_scanner_aura.md b/docs/descriptors/salesforce_sfdx_scanner_aura.md index 34ab6024cca..6846aba4109 100644 --- a/docs/descriptors/salesforce_sfdx_scanner_aura.md +++ b/docs/descriptors/salesforce_sfdx_scanner_aura.md @@ -24,8 +24,8 @@ See more details in [Help](#help-content) ## Configuration in MegaLinter -- Enable sfdx-scanner-aura by adding `SALESFORCE_SFDX_SCANNER_AURA` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable sfdx-scanner-aura by adding `SALESFORCE_SFDX_SCANNER_AURA` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable sfdx-scanner-aura by adding `SALESFORCE_SFDX_SCANNER_AURA` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable sfdx-scanner-aura by adding `SALESFORCE_SFDX_SCANNER_AURA` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |----------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -46,16 +46,16 @@ Use sfdx-scanner-aura in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Visual Studio Code](https://code.visualstudio.com/) | [Salesforce Extension Pack](https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/salesforce.salesforcedx-vscode){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [Salesforce Extension Pack](https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/salesforce.salesforcedx-vscode){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------|:----------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------|:----------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | ## Behind the scenes @@ -232,7 +232,7 @@ VfCsrf visualforce Security VfHtmlStyleTagXss visualforce Security pmd VfUnescapeEl visualforce Security Basic VF pmd ApexAssertionsShouldIncludeMessage apex Best Practices pmd -ApexUnitTestClassShouldHaveAsserts apex Best Practices ApexUnit,Default ruleset...,quickstart pmd +ApexUnitTestClassShouldHaveAsserts apex Best Practices Default ruleset...,ApexUnit,quickstart pmd ApexUnitTestMethodShouldHaveIsTestAnnotation apex Best Practices pmd ApexUnitTestShouldNotUseSeeAllDataTrue apex Best Practices ApexUnit,Default ruleset...,quickstart pmd AvoidGlobalModifier apex Best Practices Default ruleset...,Style,quickstart pmd @@ -285,11 +285,11 @@ ApexCSRF apex Error Prone AvoidDirectAccessTriggerMap apex Error Prone Default ruleset...,Style,quickstart pmd AvoidHardcodingId apex Error Prone Default ruleset...,Style,quickstart pmd AvoidNonExistentAnnotations apex Error Prone Default ruleset...,quickstart pmd -EmptyCatchBlock apex Error Prone Default ruleset...,Empty Code,quickstart pmd -EmptyIfStmt apex Error Prone Default ruleset...,Empty Code,quickstart pmd -EmptyStatementBlock apex Error Prone Default ruleset...,Empty Code,quickstart pmd -EmptyTryOrFinallyBlock apex Error Prone Default ruleset...,Empty Code,quickstart pmd -EmptyWhileStmt apex Error Prone Default ruleset...,Empty Code,quickstart pmd +EmptyCatchBlock apex Error Prone Default ruleset...,quickstart,Empty Code pmd +EmptyIfStmt apex Error Prone Default ruleset...,quickstart,Empty Code pmd +EmptyStatementBlock apex Error Prone Default ruleset...,quickstart,Empty Code pmd +EmptyTryOrFinallyBlock apex Error Prone Default ruleset...,quickstart,Empty Code pmd +EmptyWhileStmt apex Error Prone Default ruleset...,quickstart,Empty Code pmd InaccessibleAuraEnabledGetter apex Error Prone pmd MethodWithSameNameAsEnclosingClass apex Error Prone Default ruleset...,Style,quickstart pmd OverrideBothEqualsAndHashcode apex Error Prone pmd diff --git a/docs/descriptors/salesforce_sfdx_scanner_lwc.md b/docs/descriptors/salesforce_sfdx_scanner_lwc.md index 24301e28667..9623070349f 100644 --- a/docs/descriptors/salesforce_sfdx_scanner_lwc.md +++ b/docs/descriptors/salesforce_sfdx_scanner_lwc.md @@ -24,8 +24,8 @@ See more details in [Help](#help-content) ## Configuration in MegaLinter -- Enable sfdx-scanner-lwc by adding `SALESFORCE_SFDX_SCANNER_LWC` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable sfdx-scanner-lwc by adding `SALESFORCE_SFDX_SCANNER_LWC` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable sfdx-scanner-lwc by adding `SALESFORCE_SFDX_SCANNER_LWC` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable sfdx-scanner-lwc by adding `SALESFORCE_SFDX_SCANNER_LWC` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |---------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -46,16 +46,16 @@ Use sfdx-scanner-lwc in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Visual Studio Code](https://code.visualstudio.com/) | [Salesforce Extension Pack](https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/salesforce.salesforcedx-vscode){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [Salesforce Extension Pack](https://marketplace.visualstudio.com/items?itemName=salesforce.salesforcedx-vscode) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/salesforce.salesforcedx-vscode){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------|:----------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------|:----------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | ## Behind the scenes diff --git a/docs/descriptors/scala.md b/docs/descriptors/scala.md index ced88586821..fbfac6ab0dc 100644 --- a/docs/descriptors/scala.md +++ b/docs/descriptors/scala.md @@ -1,6 +1,6 @@ - + # SCALA ## Linters @@ -33,3 +33,5 @@ RUN curl -fLo coursier https://git.io/coursier-cli && \ ``` +- APK packages (Linux): + - [openjdk11](https://pkgs.alpinelinux.org/packages?branch=edge&name=openjdk11) diff --git a/docs/descriptors/scala_scalafix.md b/docs/descriptors/scala_scalafix.md index eb7cfb9b32a..f01de87993d 100644 --- a/docs/descriptors/scala_scalafix.md +++ b/docs/descriptors/scala_scalafix.md @@ -5,14 +5,14 @@ Scalafix lints and fixes scala files - As there is no prior compilation or semantic db generation, the linting is applied only with [built-in syntactic rules](https://scalacenter.github.io/scalafix/docs/rules/overview.html) -- scalafix arguments related to [semantic options](https://megalinter.github.io/descriptors/scala_scalafix/#help-content) can not be used +- scalafix arguments related to [semantic options](https://oxsecurity.github.io/megalinter/descriptors/scala_scalafix/#help-content) can not be used ## scalafix documentation - Version in MegaLinter: **0.10.1** - Visit [Official Web Site](https://scalacenter.github.io/scalafix/){target=_blank} - See [How to configure scalafix rules](https://scalacenter.github.io/scalafix/docs/users/configuration.html){target=_blank} - - If custom `.scalafix.conf` config file is not found, [.scalafix.conf](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.scalafix.conf){target=_blank} will be used + - If custom `.scalafix.conf` config file is not found, [.scalafix.conf](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.scalafix.conf){target=_blank} will be used - See [How to disable scalafix rules in files](https://scalacenter.github.io/scalafix/docs/users/suppression.html){target=_blank} - See [Index of problems detected by scalafix](https://scalacenter.github.io/scalafix/docs/rules/overview.html){target=_blank} @@ -20,8 +20,8 @@ Scalafix lints and fixes scala files ## Configuration in MegaLinter -- Enable scalafix by adding `SCALA_SCALAFIX` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable scalafix by adding `SCALA_SCALAFIX` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable scalafix by adding `SCALA_SCALAFIX` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable scalafix by adding `SCALA_SCALAFIX` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |--------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -42,10 +42,9 @@ Scalafix lints and fixes scala files This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:-----------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes @@ -233,29 +232,3 @@ RUN curl -fLo coursier https://git.io/coursier-cli && \ RUN ./coursier install scalafix --quiet --install-dir /usr/bin ``` - -### Example success log - -```shell -Results of scalafix linter (version 0.9.24) -See documentation on https://megalinter.github.io/descriptors/scala_scalafix/ ------------------------------------------------ - -[SUCCESS] .automation/test/scala/scala_good_1.scala - - -``` - -### Example error log - -```shell -Results of scalafix linter (version 0.9.24) -See documentation on https://megalinter.github.io/descriptors/scala_scalafix/ ------------------------------------------------ - -[ERROR] .automation/test/scala/scala_bad_1.scala - .automation/test/scala/scala_bad_1.scala:3:34: error: [DisableSyntax.offensive] Please consider a less offensive word such as 'extension' or 'enrichment' - println("Hello, world of pimps !") - ^^^^ - -``` diff --git a/docs/descriptors/snakemake.md b/docs/descriptors/snakemake.md index 703d5cd399d..911acf05ca8 100644 --- a/docs/descriptors/snakemake.md +++ b/docs/descriptors/snakemake.md @@ -1,6 +1,6 @@ - + # SNAKEMAKE ## Linters diff --git a/docs/descriptors/snakemake_snakefmt.md b/docs/descriptors/snakemake_snakefmt.md index eb3a0c6da7d..5ccb369c60e 100644 --- a/docs/descriptors/snakemake_snakefmt.md +++ b/docs/descriptors/snakemake_snakefmt.md @@ -2,21 +2,23 @@ # snakefmt [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) +_This linter has been temporary disabled in this version_ + ## snakefmt documentation - Version in MegaLinter: **0.6.1** - Visit [Official Web Site](https://github.com/snakemake/snakefmt#readme){target=_blank} - See [How to configure snakefmt rules](https://github.com/snakemake/snakefmt#configuration){target=_blank} - - If custom `.snakefmt.toml` config file is not found, [.snakefmt.toml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.snakefmt.toml){target=_blank} will be used + - If custom `.snakefmt.toml` config file is not found, [.snakefmt.toml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.snakefmt.toml){target=_blank} will be used [![snakefmt - GitHub](https://gh-card.dev/repos/snakemake/snakefmt.svg?fullname=)](https://github.com/snakemake/snakefmt){target=_blank} ## Configuration in MegaLinter -- Enable snakefmt by adding `SNAKEMAKE_SNAKEFMT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable snakefmt by adding `SNAKEMAKE_SNAKEFMT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable snakefmt by adding `SNAKEMAKE_SNAKEFMT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable snakefmt by adding `SNAKEMAKE_SNAKEFMT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `SNAKEMAKE_SNAKEFMT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `SNAKEMAKE_SNAKEFMT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -37,23 +39,9 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:--------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | ## Behind the scenes @@ -131,50 +119,4 @@ Options: ### Installation on mega-linter Docker image - PIP packages (Python): - - [snakefmt](https://pypi.org/project/snakefmt) - -### Example success log - -```shell -Results of snakefmt linter (version 0.2.4) -See documentation on https://megalinter.github.io/descriptors/snakemake_snakefmt/ ------------------------------------------------ - -[SUCCESS] .automation/test/snakemake/snakemake_good_1.smk - =====> Diff for .automation/test/snakemake/snakemake_good_1.smk <===== - - - [INFO] All 1 file(s) would be left unchanged 🎉 - -``` - -### Example error log - -```shell -Results of snakefmt linter (version 0.2.4) -See documentation on https://megalinter.github.io/descriptors/snakemake_snakefmt/ ------------------------------------------------ - -[ERROR] .automation/test/snakemake/snakemake_bad_1.smk - =====> Diff for .automation/test/snakemake/snakemake_bad_1.smk <===== - - --- original - +++ new - @@ -1,10 +1,11 @@ - rule all: - input: - - file1='result.txt', - + file1="result.txt", - + - - rule simulation: - output: - - file1="result.txt" - + file1="result.txt", - shell: - """ - touch {output} - - [INFO] 1 file(s) would be changed 😬 - -``` + - [snakefmt==0.4.4](https://pypi.org/project/snakefmt==0.4.4) diff --git a/docs/descriptors/snakemake_snakemake.md b/docs/descriptors/snakemake_snakemake.md index e1e91e57003..068ccba7c4d 100644 --- a/docs/descriptors/snakemake_snakemake.md +++ b/docs/descriptors/snakemake_snakemake.md @@ -18,8 +18,8 @@ ## Configuration in MegaLinter -- Enable snakemake by adding `SNAKEMAKE_LINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable snakemake by adding `SNAKEMAKE_LINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable snakemake by adding `SNAKEMAKE_LINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable snakemake by adding `SNAKEMAKE_LINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |--------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -40,30 +40,28 @@ Use snakemake in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [SnakeCharm](https://plugins.jetbrains.com/plugin/11947-snakecharm) | | -| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode SnakeMake](https://marketplace.visualstudio.com/items?itemName=alping.vscode-snakemake) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/alping.vscode-snakemake){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [SnakeCharm](https://plugins.jetbrains.com/plugin/11947-snakecharm) | | +| | [Visual Studio Code](https://code.visualstudio.com/) | [VsCode SnakeMake](https://marketplace.visualstudio.com/items?itemName=alping.vscode-snakemake) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/alping.vscode-snakemake){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -1030,40 +1028,3 @@ override environment variables which override defaults. - PIP packages (Python): - [snakemake](https://pypi.org/project/snakemake) - -### Example success log - -```shell -Results of snakemake linter (version 5.30.1) -See documentation on https://megalinter.github.io/descriptors/snakemake_snakemake/ ------------------------------------------------ - -[SUCCESS] .automation/test/snakemake/snakemake_good_1.smk - Congratulations, your workflow is in a good condition! - -``` - -### Example error log - -```shell -Results of snakemake linter (version 5.30.1) -See documentation on https://megalinter.github.io/descriptors/snakemake_snakemake/ ------------------------------------------------ - -[ERROR] .automation/test/snakemake/snakemake_bad_1.smk - Lints for rule simulation (line 11, .automation/test/snakemake/snakemake_bad_1.smk): - * No log directive defined: - Without a log directive, all output will be printed to the terminal. In - distributed environments, this means that errors are harder to discover. - In local environments, output of concurrent jobs will be mixed and become - unreadable. - Also see: - https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#log-files - * Specify a conda environment or container for each rule.: - This way, the used software for each specific step is documented, and the - workflow can be executed on any machine without prerequisites. - Also see: - https://snakemake.readthedocs.io/en/latest/snakefiles/deployment.html#integrated-package-management - https://snakemake.readthedocs.io/en/latest/snakefiles/deployment.html#running-jobs-in-containers - -``` diff --git a/docs/descriptors/spell.md b/docs/descriptors/spell.md index cb7e64eb726..dbdfa7d6fc0 100644 --- a/docs/descriptors/spell.md +++ b/docs/descriptors/spell.md @@ -1,6 +1,6 @@ - + # SPELL ## Linters @@ -12,6 +12,9 @@ ## Linted files +- File extensions: + - `*` + ## Configuration in MegaLinter | Variable | Description | Default value | diff --git a/docs/descriptors/spell_cspell.md b/docs/descriptors/spell_cspell.md index c4c4ef6a0f9..8d9fd9e7876 100644 --- a/docs/descriptors/spell_cspell.md +++ b/docs/descriptors/spell_cspell.md @@ -16,8 +16,8 @@ Copy it at the root of your repository, read it, remove real spelling errors (af ## Configuration in MegaLinter -- Enable cspell by adding `SPELL_CSPELL` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable cspell by adding `SPELL_CSPELL` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable cspell by adding `SPELL_CSPELL` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable cspell by adding `SPELL_CSPELL` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -25,7 +25,7 @@ Copy it at the root of your repository, read it, remove real spelling errors (af | SPELL_CSPELL_FILTER_REGEX_INCLUDE | Custom regex including filter
Ex: `(src\|lib)` | Include every file | | SPELL_CSPELL_FILTER_REGEX_EXCLUDE | Custom regex excluding filter
Ex: `(test\|examples)` | Exclude no file | | SPELL_CSPELL_CLI_LINT_MODE | Override default CLI lint mode
- `file`: Calls the linter for each file
- `list_of_files`: Call the linter with the list of files as argument
- `project`: Call the linter from the root of the project | `list_of_files` | -| SPELL_CSPELL_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | Exclude every file | +| SPELL_CSPELL_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | `["*"]` | | SPELL_CSPELL_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | | SPELL_CSPELL_PRE_COMMANDS | List of bash commands to run before the linter | None | | SPELL_CSPELL_POST_COMMANDS | List of bash commands to run after the linter | None | @@ -40,35 +40,34 @@ Use cspell in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Visual Studio Code](https://code.visualstudio.com/) | [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/streetsidesoftware.code-spell-checker){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [Code Spell Checker](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/streetsidesoftware.code-spell-checker){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes ### How are identified applicable files - If this linter is active, all files linted by all other active linters will be linted +- File extensions: `*` @@ -115,49 +114,3 @@ Commands: - NPM packages (node.js): - [cspell](https://www.npmjs.com/package/cspell) - -### Example success log - -```shell -Results of cspell linter (version 4.1.3) -See documentation on https://megalinter.github.io/descriptors/spell_cspell/ ------------------------------------------------ - -[SUCCESS] .automation/test/spell - CSpell: Files checked: 1, Issues found: 0 in 0 files - -``` - -### Example error log - -```shell -Results of cspell linter (version 4.1.3) -See documentation on https://megalinter.github.io/descriptors/spell_cspell/ ------------------------------------------------ - -[ERROR] .automation/test/spell - .automation/test/spell/spell_bad_1.js:1:28 - Unknown word (Blablabla) - CSpell: Files checked: 1, Issues found: 1 in 1 files - - -You can skip this misspellings by defining the following .cspell.json file at the root of your repository -Of course, please correct real typos before :) - -{ - "version": 0.1, - "language": "en", - "ignorePaths": [ - "**/node_modules/**", - "**/vscode-extension/**", - "**/.git/**", - ".vscode", - "report" - ], - "words": [ - "Blablabla" - ] -} - - -You can also copy-paste /tmp/.cspell.json at the root of your repository -``` diff --git a/docs/descriptors/spell_misspell.md b/docs/descriptors/spell_misspell.md index 441771bc36b..6f06e7d9179 100644 --- a/docs/descriptors/spell_misspell.md +++ b/docs/descriptors/spell_misspell.md @@ -13,10 +13,10 @@ misspell detects and corrects commonly misspelled english words ## Configuration in MegaLinter -- Enable misspell by adding `SPELL_MISSPELL` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable misspell by adding `SPELL_MISSPELL` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable misspell by adding `SPELL_MISSPELL` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable misspell by adding `SPELL_MISSPELL` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `SPELL_MISSPELL` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `SPELL_MISSPELL` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |--------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -24,7 +24,7 @@ misspell detects and corrects commonly misspelled english words | SPELL_MISSPELL_FILTER_REGEX_INCLUDE | Custom regex including filter
Ex: `(src\|lib)` | Include every file | | SPELL_MISSPELL_FILTER_REGEX_EXCLUDE | Custom regex excluding filter
Ex: `(test\|examples)` | Exclude no file | | SPELL_MISSPELL_CLI_LINT_MODE | Override default CLI lint mode
- `file`: Calls the linter for each file
- `list_of_files`: Call the linter with the list of files as argument
- `project`: Call the linter from the root of the project | `list_of_files` | -| SPELL_MISSPELL_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | Exclude every file | +| SPELL_MISSPELL_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | `["*"]` | | SPELL_MISSPELL_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | | SPELL_MISSPELL_PRE_COMMANDS | List of bash commands to run before the linter | None | | SPELL_MISSPELL_POST_COMMANDS | List of bash commands to run after the linter | None | @@ -35,29 +35,28 @@ misspell detects and corrects commonly misspelled english words This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes ### How are identified applicable files - If this linter is active, all files linted by all other active linters will be linted +- File extensions: `*` @@ -112,27 +111,3 @@ RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ ``` - -### Example success log - -```shell -Results of misspell linter (version dev) -See documentation on https://megalinter.github.io/descriptors/spell_misspell/ ------------------------------------------------ - -✅ [SUCCESS] .automation/test/spell - - -``` - -### Example error log - -```shell -Results of misspell linter (version dev) -See documentation on https://megalinter.github.io/descriptors/spell_misspell/ ------------------------------------------------ - -❌ [ERROR] .automation/test/spell - .automation/test/spell/spell_bad_1.js:1:6: "langauge" is a misspelling of "language" - -``` diff --git a/docs/descriptors/sql.md b/docs/descriptors/sql.md index 53b6953c854..fc8df1ea887 100644 --- a/docs/descriptors/sql.md +++ b/docs/descriptors/sql.md @@ -1,6 +1,6 @@ - + # SQL ## Linters diff --git a/docs/descriptors/sql_sql_lint.md b/docs/descriptors/sql_sql_lint.md index d32e287837e..b28b4db71e6 100644 --- a/docs/descriptors/sql_sql_lint.md +++ b/docs/descriptors/sql_sql_lint.md @@ -7,15 +7,15 @@ - Version in MegaLinter: **1.0.0** - Visit [Official Web Site](https://github.com/joereynolds/sql-lint#readme){target=_blank} - See [How to configure sql-lint rules](https://sql-lint.readthedocs.io/en/latest/files/configuration.html){target=_blank} - - If custom `.sql-config.json` config file is not found, [.sql-config.json](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.sql-config.json){target=_blank} will be used + - If custom `.sql-config.json` config file is not found, [.sql-config.json](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.sql-config.json){target=_blank} will be used - See [Index of problems detected by sql-lint](https://github.com/joereynolds/sql-lint#checks){target=_blank} [![sql-lint - GitHub](https://gh-card.dev/repos/joereynolds/sql-lint.svg?fullname=)](https://github.com/joereynolds/sql-lint){target=_blank} ## Configuration in MegaLinter -- Enable sql-lint by adding `SQL_SQL_LINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable sql-lint by adding `SQL_SQL_LINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable sql-lint by adding `SQL_SQL_LINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable sql-lint by adding `SQL_SQL_LINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -38,29 +38,27 @@ Use sql-lint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:----------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------|-----------------------------------------------|:-----------------------------------------------------------------------:| -| | [vim](https://www.vim.org/) | [ale](https://github.com/dense-analysis/ale/) | [Visit Web Site](https://github.com/dense-analysis/ale/){target=_blank} | +| | [vim](https://www.vim.org/) | [ale](https://github.com/dense-analysis/ale/) | [Visit Web Site](https://github.com/dense-analysis/ale/){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -114,27 +112,3 @@ Options: - NPM packages (node.js): - [sql-lint](https://www.npmjs.com/package/sql-lint) - -### Example success log - -```shell -Results of sql-lint linter (version 0.0.15) -See documentation on https://megalinter.github.io/descriptors/sql_sql_lint/ ------------------------------------------------ - -[SUCCESS] .automation/test/sql/sql_good_1.sql - - -``` - -### Example error log - -```shell -Results of sql-lint linter (version 0.0.15) -See documentation on https://megalinter.github.io/descriptors/sql_sql_lint/ ------------------------------------------------ - -[ERROR] .automation/test/sql/sql_bad_1.sql - .automation/test/sql/sql_bad_1.sql:1 [sql-lint: missing-where] DELETE statement missing WHERE clause. - -``` diff --git a/docs/descriptors/sql_sqlfluff.md b/docs/descriptors/sql_sqlfluff.md index 86a6ccb61ef..c6686c8cac2 100644 --- a/docs/descriptors/sql_sqlfluff.md +++ b/docs/descriptors/sql_sqlfluff.md @@ -14,15 +14,15 @@ - Version in MegaLinter: **1.0.0** - Visit [Official Web Site](https://www.sqlfluff.com/){target=_blank} - See [How to configure sqlfluff rules](https://docs.sqlfluff.com/en/stable/configuration.html){target=_blank} - - If custom `.sqlfluff` config file is not found, [.sqlfluff](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.sqlfluff){target=_blank} will be used + - If custom `.sqlfluff` config file is not found, [.sqlfluff](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.sqlfluff){target=_blank} will be used - See [Index of problems detected by sqlfluff](https://docs.sqlfluff.com/en/stable/rules.html){target=_blank} [![sqlfluff - GitHub](https://gh-card.dev/repos/sqlfluff/sqlfluff.svg?fullname=)](https://github.com/sqlfluff/sqlfluff){target=_blank} ## Configuration in MegaLinter -- Enable sqlfluff by adding `SQL_SQLFLUFF` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable sqlfluff by adding `SQL_SQLFLUFF` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable sqlfluff by adding `SQL_SQLFLUFF` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable sqlfluff by adding `SQL_SQLFLUFF` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -43,23 +43,21 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/sql_tsqllint.md b/docs/descriptors/sql_tsqllint.md index 0e1a474fc6f..2a2f9d49da2 100644 --- a/docs/descriptors/sql_tsqllint.md +++ b/docs/descriptors/sql_tsqllint.md @@ -14,8 +14,8 @@ ## Configuration in MegaLinter -- Enable tsqllint by adding `SQL_TSQLLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable tsqllint by adding `SQL_TSQLLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable tsqllint by adding `SQL_TSQLLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable tsqllint by adding `SQL_TSQLLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -38,16 +38,16 @@ Use tsqllint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Visual Studio Code](https://code.visualstudio.com/) | [TSQL Lint](https://marketplace.visualstudio.com/items?itemName=tsqllint.tsqllint) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/tsqllint.tsqllint){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [TSQL Lint](https://marketplace.visualstudio.com/items?itemName=tsqllint.tsqllint) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/tsqllint.tsqllint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | ## Behind the scenes @@ -95,6 +95,20 @@ tsqllint [options] [file.sql] | [dir] | [file.sql | dir] - Dockerfile commands : ```dockerfile +RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest + +ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" RUN dotnet tool install --global TSQLLint ``` +- APK packages (Linux): + - [icu-libs](https://pkgs.alpinelinux.org/packages?branch=edge&name=icu-libs) + - [libcurl](https://pkgs.alpinelinux.org/packages?branch=edge&name=libcurl) + - [libintl](https://pkgs.alpinelinux.org/packages?branch=edge&name=libintl) + - [libssl1.1](https://pkgs.alpinelinux.org/packages?branch=edge&name=libssl1.1) + - [libstdc++](https://pkgs.alpinelinux.org/packages?branch=edge&name=libstdc++) + - [lttng-ust-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=lttng-ust-dev) + - [zlib](https://pkgs.alpinelinux.org/packages?branch=edge&name=zlib) + - [zlib-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=zlib-dev) diff --git a/docs/descriptors/swift.md b/docs/descriptors/swift.md index 91d0c610aea..2514b8135f3 100644 --- a/docs/descriptors/swift.md +++ b/docs/descriptors/swift.md @@ -1,6 +1,6 @@ - + # SWIFT ## Linters diff --git a/docs/descriptors/swift_swiftlint.md b/docs/descriptors/swift_swiftlint.md index 59e7e1fc392..664be0b4518 100644 --- a/docs/descriptors/swift_swiftlint.md +++ b/docs/descriptors/swift_swiftlint.md @@ -16,10 +16,10 @@ ## Configuration in MegaLinter -- Enable swiftlint by adding `SWIFT_SWIFTLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable swiftlint by adding `SWIFT_SWIFTLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable swiftlint by adding `SWIFT_SWIFTLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable swiftlint by adding `SWIFT_SWIFTLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `SWIFT_SWIFTLINT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `SWIFT_SWIFTLINT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |---------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -40,18 +40,18 @@ Use swiftlint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-swiftlint](https://atom.io/packages/linter-swiftlint) | [Visit Web Site](https://atom.io/packages/linter-swiftlint){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [swiftlint](https://plugins.jetbrains.com/plugin/9175-swiftlint) | | -| | xcode | [Configure manually](https://github.com/realm/SwiftLint#xcode) | [Visit Web Site](https://github.com/realm/SwiftLint#xcode){target=_blank} | +| | [Atom](https://atom.io/) | [linter-swiftlint](https://atom.io/packages/linter-swiftlint) | [Visit Web Site](https://atom.io/packages/linter-swiftlint){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [swiftlint](https://plugins.jetbrains.com/plugin/9175-swiftlint) | | +| | xcode | [Configure manually](https://github.com/realm/SwiftLint#xcode) | [Visit Web Site](https://github.com/realm/SwiftLint#xcode){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:-----------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:-----------------------------------|:----------------:|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | ## Behind the scenes diff --git a/docs/descriptors/tekton.md b/docs/descriptors/tekton.md index d542f8656e7..f9239989e3e 100644 --- a/docs/descriptors/tekton.md +++ b/docs/descriptors/tekton.md @@ -1,6 +1,6 @@ - + # TEKTON ## Linters diff --git a/docs/descriptors/tekton_tekton_lint.md b/docs/descriptors/tekton_tekton_lint.md index 97de62084f2..cbd34cef0d5 100644 --- a/docs/descriptors/tekton_tekton_lint.md +++ b/docs/descriptors/tekton_tekton_lint.md @@ -13,8 +13,8 @@ ## Configuration in MegaLinter -- Enable tekton-lint by adding `TEKTON_TEKTON_LINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable tekton-lint by adding `TEKTON_TEKTON_LINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable tekton-lint by adding `TEKTON_TEKTON_LINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable tekton-lint by adding `TEKTON_TEKTON_LINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -35,23 +35,21 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -107,34 +105,3 @@ $ tekton-lint --watch '**/*.yaml' - NPM packages (node.js): - [tekton-lint](https://www.npmjs.com/package/tekton-lint) - -### Example success log - -```shell -Results of tekton-lint linter (version 0.5.2) -See documentation on https://megalinter.github.io/descriptors/tekton_tekton_lint/ ------------------------------------------------ - -[SUCCESS] .automation/test/tekton/good/tekton_good_1.yml - .automation/test/tekton/good/tekton_good_1.yml: - warning (20,14,20,20): Invalid image: 'ubuntu'. Specify the image tag instead of using ':latest' - warning (22,14,22,51): Invalid image: 'gcr.io/example-builders/build-example'. Specify the image tag instead of using ':latest' - warning (26,14,26,50): Invalid image: 'gcr.io/example-builders/push-example'. Specify the image tag instead of using ':latest' - -``` - -### Example error log - -```shell -Results of tekton-lint linter (version 0.5.2) -See documentation on https://megalinter.github.io/descriptors/tekton_tekton_lint/ ------------------------------------------------ - -[ERROR] .automation/test/tekton/bad/tekton_bad_1.yml - .automation/test/tekton/bad/tekton_bad_1.yml: - warning (20,14,20,20): Invalid image: 'ubuntu'. Specify the image tag instead of using ':latest' - warning (22,14,22,51): Invalid image: 'gcr.io/example-builders/build-example'. Specify the image tag instead of using ':latest' - warning (26,14,26,50): Invalid image: 'gcr.io/example-builders/push-example'. Specify the image tag instead of using ':latest' - error (29,17,29,31): Task 'example-task-name' wants to mount volume 'example-volume' in step 'dockerfile-pushexample', but this volume is not defined. - -``` diff --git a/docs/descriptors/terraform.md b/docs/descriptors/terraform.md index dd7b1d54b5f..816a78c0fc2 100644 --- a/docs/descriptors/terraform.md +++ b/docs/descriptors/terraform.md @@ -1,6 +1,6 @@ - + # TERRAFORM ## Linters diff --git a/docs/descriptors/terraform_checkov.md b/docs/descriptors/terraform_checkov.md index ab596cd1517..48cf7292e8a 100644 --- a/docs/descriptors/terraform_checkov.md +++ b/docs/descriptors/terraform_checkov.md @@ -20,8 +20,8 @@ ## Configuration in MegaLinter -- Enable checkov by adding `TERRAFORM_CHECKOV` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable checkov by adding `TERRAFORM_CHECKOV` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable checkov by adding `TERRAFORM_CHECKOV` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable checkov by adding `TERRAFORM_CHECKOV` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -42,16 +42,17 @@ Use checkov in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:-------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|-----------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Visual Studio Code](https://code.visualstudio.com/) | [Checkov](https://marketplace.visualstudio.com/items?itemName=Bridgecrew.checkov) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/Bridgecrew.checkov){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [Checkov](https://marketplace.visualstudio.com/items?itemName=Bridgecrew.checkov) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/Bridgecrew.checkov){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------|:---------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/terraform_kics.md b/docs/descriptors/terraform_kics.md index a8d6ca7e07f..5d82d69489e 100644 --- a/docs/descriptors/terraform_kics.md +++ b/docs/descriptors/terraform_kics.md @@ -20,8 +20,8 @@ ## Configuration in MegaLinter -- Enable kics by adding `TERRAFORM_KICS` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable kics by adding `TERRAFORM_KICS` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable kics by adding `TERRAFORM_KICS` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable kics by adding `TERRAFORM_KICS` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |--------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -40,10 +40,11 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------|:---------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/terraform_terraform_fmt.md b/docs/descriptors/terraform_terraform_fmt.md index b6297ffd528..00b81a8f572 100644 --- a/docs/descriptors/terraform_terraform_fmt.md +++ b/docs/descriptors/terraform_terraform_fmt.md @@ -18,10 +18,10 @@ ## Configuration in MegaLinter -- Enable terraform-fmt by adding `TERRAFORM_TERRAFORM_FMT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable terraform-fmt by adding `TERRAFORM_TERRAFORM_FMT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable terraform-fmt by adding `TERRAFORM_TERRAFORM_FMT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable terraform-fmt by adding `TERRAFORM_TERRAFORM_FMT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `TERRAFORM_TERRAFORM_FMT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `TERRAFORM_TERRAFORM_FMT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |-----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -42,19 +42,19 @@ Use terraform-fmt in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [terraform-fmt](https://atom.io/packages/terraform-fmt) | [Visit Web Site](https://atom.io/packages/terraform-fmt){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [HashiCorp Terraform / HCL language support](https://plugins.jetbrains.com/plugin/7808-hashicorp-terraform--hcl-language-support) | | -| | [Sublime Text](https://www.sublimetext.com/) | [Terrafmt](https://packagecontrol.io/packages/Terrafmt) | [Visit Web Site](https://packagecontrol.io/packages/Terrafmt){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [HashiCorp Terraform](https://marketplace.visualstudio.com/items?itemName=HashiCorp.terraform) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/HashiCorp.terraform){target=_blank} | +| | [Atom](https://atom.io/) | [terraform-fmt](https://atom.io/packages/terraform-fmt) | [Visit Web Site](https://atom.io/packages/terraform-fmt){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [HashiCorp Terraform / HCL language support](https://plugins.jetbrains.com/plugin/7808-hashicorp-terraform--hcl-language-support) | | +| | [Sublime Text](https://www.sublimetext.com/) | [Terrafmt](https://packagecontrol.io/packages/Terrafmt) | [Visit Web Site](https://packagecontrol.io/packages/Terrafmt){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [HashiCorp Terraform](https://marketplace.visualstudio.com/items?itemName=HashiCorp.terraform) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/HashiCorp.terraform){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------|:---------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -122,6 +122,7 @@ Global options (use these before the subcommand, if any): - Dockerfile commands : ```dockerfile +FROM alpine/terragrunt:latest as terragrunt COPY --from=terragrunt /bin/terraform /usr/bin/ ``` diff --git a/docs/descriptors/terraform_terragrunt.md b/docs/descriptors/terraform_terragrunt.md index 26a6a5a0f10..7a286bf2872 100644 --- a/docs/descriptors/terraform_terragrunt.md +++ b/docs/descriptors/terraform_terragrunt.md @@ -12,10 +12,10 @@ ## Configuration in MegaLinter -- Enable terragrunt by adding `TERRAFORM_TERRAGRUNT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable terragrunt by adding `TERRAFORM_TERRAGRUNT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable terragrunt by adding `TERRAFORM_TERRAGRUNT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable terragrunt by adding `TERRAFORM_TERRAGRUNT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `TERRAFORM_TERRAGRUNT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `TERRAFORM_TERRAGRUNT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |--------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -36,10 +36,11 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------|:---------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -129,31 +130,3 @@ FROM alpine/terragrunt:latest as terragrunt COPY --from=terragrunt /usr/local/bin/terragrunt /usr/bin/ ``` - -### Example success log - -```shell -Results of terragrunt linter (version 0.26.7) -See documentation on https://megalinter.github.io/descriptors/terraform_terragrunt/ ------------------------------------------------ - -[SUCCESS] .automation/test/terraform_terragrunt/terragrunt_good_1.hcl - [terragrunt] 2020/12/05 12:35:50 Formatting terragrunt.hcl file at: .automation/test/terraform_terragrunt/terragrunt_good_1.hcl. - [terragrunt] 2020/12/05 12:35:50 Formatting .automation/test/terraform_terragrunt/terragrunt_good_1.hcl - -``` - -### Example error log - -```shell -Results of terragrunt linter (version 0.26.7) -See documentation on https://megalinter.github.io/descriptors/terraform_terragrunt/ ------------------------------------------------ - -[ERROR] .automation/test/terraform_terragrunt/terragrunt_bad_1.hcl - [terragrunt] 2020/12/05 12:35:49 Formatting terragrunt.hcl file at: .automation/test/terraform_terragrunt/terragrunt_bad_1.hcl. - [terragrunt] 2020/12/05 12:35:49 Formatting .automation/test/terraform_terragrunt/terragrunt_bad_1.hcl - [terragrunt] 2020/12/05 12:35:49 Invalid file format .automation/test/terraform_terragrunt/terragrunt_bad_1.hcl - [terragrunt] 2020/12/05 12:35:49 Unable to determine underlying exit code, so Terragrunt will exit with error code 1 - -``` diff --git a/docs/descriptors/terraform_terrascan.md b/docs/descriptors/terraform_terrascan.md index ba1fc5dc5c4..2ff2eae903c 100644 --- a/docs/descriptors/terraform_terrascan.md +++ b/docs/descriptors/terraform_terrascan.md @@ -3,7 +3,7 @@ @@ -20,8 +20,8 @@ ## Configuration in MegaLinter -- Enable terrascan by adding `TERRAFORM_TERRASCAN` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable terrascan by adding `TERRAFORM_TERRASCAN` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable terrascan by adding `TERRAFORM_TERRASCAN` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable terrascan by adding `TERRAFORM_TERRASCAN` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -39,10 +39,11 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------|:---------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -97,61 +98,7 @@ Use "terrascan [command] --help" for more information about a command. - Dockerfile commands : ```dockerfile -FROM accurics/terrascan:latest as terrascan +FROM tenable/terrascan:latest as terrascan COPY --from=terrascan /go/bin/terrascan /usr/bin/ ``` - -### Example success log - -```shell -Results of terrascan linter (version 1.2.0) -See documentation on https://megalinter.github.io/descriptors/terraform_terrascan/ ------------------------------------------------ - -[SUCCESS] .automation/test/terraform_terrascan/good/terraform_good_1.tf - results: - violations: [] - count: - low: 0 - medium: 0 - high: 0 - total: 0 - -``` - -### Example error log - -```shell -Results of terrascan linter (version 1.2.0) -See documentation on https://megalinter.github.io/descriptors/terraform_terrascan/ ------------------------------------------------ - -[ERROR] .automation/test/terraform_terrascan/bad/terraform_bad_1.tf - results: - violations: - - rule_name: instanceWithNoVpc - description: Instance should be configured in vpc. AWS VPCs provides the controls to facilitate a formal process for approving and testing all network connections and changes to the firewall and router configurations. - rule_id: AWS.Instance.NetworkSecurity.Medium.0506 - severity: MEDIUM - category: Network Security - resource_name: instanceWithNoVpc - resource_type: aws_instance - file: terraform_bad_1.tf - line: 1 - - rule_name: ec2UsingIMDSv1 - description: EC2 instances should disable IMDS or require IMDSv2 - rule_id: AC-AWS-NS-IN-M-1172 - severity: MEDIUM - category: Network Security - resource_name: instanceWithNoVpc - resource_type: aws_instance - file: terraform_bad_1.tf - line: 1 - count: - low: 0 - medium: 2 - high: 0 - total: 2 - -``` diff --git a/docs/descriptors/terraform_tflint.md b/docs/descriptors/terraform_tflint.md index 172db3b4322..307a9dbb16f 100644 --- a/docs/descriptors/terraform_tflint.md +++ b/docs/descriptors/terraform_tflint.md @@ -7,7 +7,7 @@ - Version in MegaLinter: **0.35.0** - Visit [Official Web Site](https://github.com/terraform-linters/tflint#readme){target=_blank} - See [How to configure tflint rules](https://github.com/terraform-linters/tflint/blob/master/docs/guides/config.md){target=_blank} - - If custom `.tflint.hcl` config file is not found, [.tflint.hcl](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.tflint.hcl){target=_blank} will be used + - If custom `.tflint.hcl` config file is not found, [.tflint.hcl](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.tflint.hcl){target=_blank} will be used - See [How to disable tflint rules in files](https://github.com/terraform-linters/tflint/blob/master/docs/guides/annotations.md){target=_blank} - See [Index of problems detected by tflint](https://github.com/terraform-linters/tflint/tree/master/docs/rules#rules){target=_blank} @@ -15,8 +15,8 @@ ## Configuration in MegaLinter -- Enable tflint by adding `TERRAFORM_TFLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable tflint by adding `TERRAFORM_TFLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable tflint by adding `TERRAFORM_TFLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable tflint by adding `TERRAFORM_TFLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |----------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -37,10 +37,11 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------|:---------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------|:---------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [security](https://oxsecurity.github.io/megalinter/latest/flavors/security/) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -130,35 +131,3 @@ FROM ghcr.io/terraform-linters/tflint:v0.35.0 as tflint COPY --from=tflint /usr/local/bin/tflint /usr/bin/ ``` - -### Example success log - -```shell -Results of tflint linter (version 0.21.0) -See documentation on https://megalinter.github.io/descriptors/terraform_tflint/ ------------------------------------------------ - -[SUCCESS] .automation/test/terraform/good/terraform_good_1.tf - - -``` - -### Example error log - -```shell -Results of tflint linter (version 0.21.0) -See documentation on https://megalinter.github.io/descriptors/terraform_tflint/ ------------------------------------------------ - -[ERROR] .automation/test/terraform/bad/terraform_bad_1.tf - Failed to load configurations. 1 error(s) occurred: - - Error: Invalid expression - - on .automation/test/terraform/bad/terraform_bad_1.tf line 3, in resource "aws_instance" "bad": - 3: instance_type = # invalid type! - 4: } - - Expected the start of an expression, but found an invalid expression token. - -``` diff --git a/docs/descriptors/tsx.md b/docs/descriptors/tsx.md index bd4dc5c6c7a..afee467099b 100644 --- a/docs/descriptors/tsx.md +++ b/docs/descriptors/tsx.md @@ -1,6 +1,6 @@ - + # TSX ## Linters diff --git a/docs/descriptors/tsx_eslint.md b/docs/descriptors/tsx_eslint.md index 8d049c1c695..ac20262fb3f 100644 --- a/docs/descriptors/tsx_eslint.md +++ b/docs/descriptors/tsx_eslint.md @@ -25,10 +25,10 @@ You can create it by typing `npx eslint --init` in the root of your repository ## Configuration in MegaLinter -- Enable eslint by adding `TSX_ESLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable eslint by adding `TSX_ESLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable eslint by adding `TSX_ESLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable eslint by adding `TSX_ESLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `TSX_ESLINT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `TSX_ESLINT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -51,24 +51,24 @@ Use eslint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:---------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-eslint](https://atom.io/packages/linter-eslint) | [Visit Web Site](https://atom.io/packages/linter-eslint){target=_blank} | -| | [Brackets](http://brackets.io/) | [brackets-eslint](https://github.com/brackets-userland/brackets-eslint) | [Visit Web Site](https://github.com/brackets-userland/brackets-eslint){target=_blank} | -| | [Eclipse](https://www.eclipse.org/) | [Tern-Linter-ESLint](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint) | [Visit Web Site](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](http://www.flycheck.org/en/latest/languages.html#javascript) | [Visit Web Site](http://www.flycheck.org/en/latest/languages.html#javascript){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [ESLint Plugin](https://plugins.jetbrains.com/plugin/7494-eslint) | | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-eslint](https://github.com/roadhump/SublimeLinter-eslint) | [Visit Web Site](https://github.com/roadhump/SublimeLinter-eslint){target=_blank} | -| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | -| | [vim](https://www.vim.org/) | [Syntastic](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript) | [Visit Web Site](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/dbaeumer.vscode-eslint){target=_blank} | +| | [Atom](https://atom.io/) | [linter-eslint](https://atom.io/packages/linter-eslint) | [Visit Web Site](https://atom.io/packages/linter-eslint){target=_blank} | +| | [Brackets](http://brackets.io/) | [brackets-eslint](https://github.com/brackets-userland/brackets-eslint) | [Visit Web Site](https://github.com/brackets-userland/brackets-eslint){target=_blank} | +| | [Eclipse](https://www.eclipse.org/) | [Tern-Linter-ESLint](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint) | [Visit Web Site](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](http://www.flycheck.org/en/latest/languages.html#javascript) | [Visit Web Site](http://www.flycheck.org/en/latest/languages.html#javascript){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [ESLint Plugin](https://plugins.jetbrains.com/plugin/7494-eslint) | | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-eslint](https://github.com/roadhump/SublimeLinter-eslint) | [Visit Web Site](https://github.com/roadhump/SublimeLinter-eslint){target=_blank} | +| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | +| | [vim](https://www.vim.org/) | [Syntastic](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript) | [Visit Web Site](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/dbaeumer.vscode-eslint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes @@ -171,36 +171,10 @@ Miscellaneous: - [eslint-config-prettier](https://www.npmjs.com/package/eslint-config-prettier) - [eslint-plugin-jest](https://www.npmjs.com/package/eslint-plugin-jest) - [eslint-plugin-prettier](https://www.npmjs.com/package/eslint-plugin-prettier) + - [eslint-plugin-react](https://www.npmjs.com/package/eslint-plugin-react) - [babel-eslint](https://www.npmjs.com/package/babel-eslint) - [prettier](https://www.npmjs.com/package/prettier) - [prettyjson](https://www.npmjs.com/package/prettyjson) - [@typescript-eslint/eslint-plugin](https://www.npmjs.com/package/@typescript-eslint/eslint-plugin) - [@typescript-eslint/parser](https://www.npmjs.com/package/@typescript-eslint/parser) - -### Example success log - -```shell -Results of eslint linter (version 7.15.0) -See documentation on https://megalinter.github.io/descriptors/tsx_eslint/ ------------------------------------------------ - -[SUCCESS] .automation/test/tsx/tsx_good_1.tsx - Warning: React version not specified in eslint-plugin-react settings. See https://github.com/yannickcr/eslint-plugin-react#configuration . - -``` - -### Example error log - -```shell -Results of eslint linter (version 7.15.0) -See documentation on https://megalinter.github.io/descriptors/tsx_eslint/ ------------------------------------------------ - -[ERROR] .automation/test/tsx/tsx_bad_1.tsx - - .automation/test/tsx/tsx_bad_1.tsx - 7:10 error Parsing error: '=' expected - - ✖ 1 problem (1 error, 0 warnings) - -``` + - [@microsoft/eslint-formatter-sarif](https://www.npmjs.com/package/@microsoft/eslint-formatter-sarif) diff --git a/docs/descriptors/typescript.md b/docs/descriptors/typescript.md index aa9df254b81..792ecda2a32 100644 --- a/docs/descriptors/typescript.md +++ b/docs/descriptors/typescript.md @@ -1,6 +1,6 @@ - + # TYPESCRIPT ## Linters diff --git a/docs/descriptors/typescript_eslint.md b/docs/descriptors/typescript_eslint.md index 429f4fb8613..6d88f117f6a 100644 --- a/docs/descriptors/typescript_eslint.md +++ b/docs/descriptors/typescript_eslint.md @@ -25,10 +25,10 @@ You can create it by typing `npx eslint --init` in the root of your repository ## Configuration in MegaLinter -- Enable eslint by adding `TYPESCRIPT_ES` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable eslint by adding `TYPESCRIPT_ES` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable eslint by adding `TYPESCRIPT_ES` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable eslint by adding `TYPESCRIPT_ES` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `TYPESCRIPT_ES` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `TYPESCRIPT_ES` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -51,24 +51,24 @@ Use eslint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:---------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-eslint](https://atom.io/packages/linter-eslint) | [Visit Web Site](https://atom.io/packages/linter-eslint){target=_blank} | -| | [Brackets](http://brackets.io/) | [brackets-eslint](https://github.com/brackets-userland/brackets-eslint) | [Visit Web Site](https://github.com/brackets-userland/brackets-eslint){target=_blank} | -| | [Eclipse](https://www.eclipse.org/) | [Tern-Linter-ESLint](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint) | [Visit Web Site](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](http://www.flycheck.org/en/latest/languages.html#javascript) | [Visit Web Site](http://www.flycheck.org/en/latest/languages.html#javascript){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [ESLint Plugin](https://plugins.jetbrains.com/plugin/7494-eslint) | | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-eslint](https://github.com/roadhump/SublimeLinter-eslint) | [Visit Web Site](https://github.com/roadhump/SublimeLinter-eslint){target=_blank} | -| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | -| | [vim](https://www.vim.org/) | [Syntastic](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript) | [Visit Web Site](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/dbaeumer.vscode-eslint){target=_blank} | +| | [Atom](https://atom.io/) | [linter-eslint](https://atom.io/packages/linter-eslint) | [Visit Web Site](https://atom.io/packages/linter-eslint){target=_blank} | +| | [Brackets](http://brackets.io/) | [brackets-eslint](https://github.com/brackets-userland/brackets-eslint) | [Visit Web Site](https://github.com/brackets-userland/brackets-eslint){target=_blank} | +| | [Eclipse](https://www.eclipse.org/) | [Tern-Linter-ESLint](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint) | [Visit Web Site](https://github.com/angelozerr/tern.java/wiki/Tern-Linter-ESLint){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](http://www.flycheck.org/en/latest/languages.html#javascript) | [Visit Web Site](http://www.flycheck.org/en/latest/languages.html#javascript){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [ESLint Plugin](https://plugins.jetbrains.com/plugin/7494-eslint) | | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-eslint](https://github.com/roadhump/SublimeLinter-eslint) | [Visit Web Site](https://github.com/roadhump/SublimeLinter-eslint){target=_blank} | +| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | +| | [vim](https://www.vim.org/) | [Syntastic](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript) | [Visit Web Site](https://github.com/vim-syntastic/syntastic/tree/master/syntax_checkers/javascript){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [vscode-eslint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/dbaeumer.vscode-eslint){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes @@ -180,31 +180,4 @@ Miscellaneous: - [prettyjson](https://www.npmjs.com/package/prettyjson) - [@typescript-eslint/eslint-plugin](https://www.npmjs.com/package/@typescript-eslint/eslint-plugin) - [@typescript-eslint/parser](https://www.npmjs.com/package/@typescript-eslint/parser) - -### Example success log - -```shell -Results of eslint linter (version 7.15.0) -See documentation on https://megalinter.github.io/descriptors/typescript_eslint/ ------------------------------------------------ - -[SUCCESS] .automation/test/typescript/typescript_good_1.ts - - -``` - -### Example error log - -```shell -Results of eslint linter (version 7.15.0) -See documentation on https://megalinter.github.io/descriptors/typescript_eslint/ ------------------------------------------------ - -[ERROR] .automation/test/typescript/typescript_bad_1.ts - - .automation/test/typescript/typescript_bad_1.ts - 5:39 error Parsing error: Unterminated regular expression literal - - ✖ 1 problem (1 error, 0 warnings) - -``` + - [@microsoft/eslint-formatter-sarif](https://www.npmjs.com/package/@microsoft/eslint-formatter-sarif) diff --git a/docs/descriptors/typescript_prettier.md b/docs/descriptors/typescript_prettier.md index 45623779a3f..b5db4cd99f4 100644 --- a/docs/descriptors/typescript_prettier.md +++ b/docs/descriptors/typescript_prettier.md @@ -21,10 +21,10 @@ ## Configuration in MegaLinter -- Enable prettier by adding `TYPESCRIPT_PRETTIER` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable prettier by adding `TYPESCRIPT_PRETTIER` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable prettier by adding `TYPESCRIPT_PRETTIER` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable prettier by adding `TYPESCRIPT_PRETTIER` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `TYPESCRIPT_PRETTIER` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `TYPESCRIPT_PRETTIER` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |-------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -48,26 +48,26 @@ Use prettier in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-----------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [prettier-atom](https://github.com/prettier/prettier-atom) | [Visit Web Site](https://github.com/prettier/prettier-atom){target=_blank} | -| | [Atom](https://atom.io/) | [atom-mprettier](https://github.com/t9md/atom-mprettier) | [Visit Web Site](https://github.com/t9md/atom-mprettier){target=_blank} | -| | [Atom](https://atom.io/) | [atom-miniprettier](https://github.com/duailibe/atom-miniprettier) | [Visit Web Site](https://github.com/duailibe/atom-miniprettier){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier-emacs](https://github.com/prettier/prettier-emacs) | [Visit Web Site](https://github.com/prettier/prettier-emacs){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier.el](https://github.com/jscheid/prettier.el) | [Visit Web Site](https://github.com/jscheid/prettier.el){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [apheleia](https://github.com/raxod502/apheleia) | [Visit Web Site](https://github.com/raxod502/apheleia){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://prettier.io/docs/en/webstorm.html) | [Visit Web Site](https://prettier.io/docs/en/webstorm.html){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [JsPrettier](https://packagecontrol.io/packages/JsPrettier) | [Visit Web Site](https://packagecontrol.io/packages/JsPrettier){target=_blank} | -| | [vim](https://www.vim.org/) | [vim-prettier](https://github.com/prettier/vim-prettier) | [Visit Web Site](https://github.com/prettier/vim-prettier){target=_blank} | -| | visual_studio | [JavaScriptPrettier](https://github.com/madskristensen/JavaScriptPrettier) | [Visit Web Site](https://github.com/madskristensen/JavaScriptPrettier){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/esbenp.prettier-vscode){target=_blank} | +| | [Atom](https://atom.io/) | [prettier-atom](https://github.com/prettier/prettier-atom) | [Visit Web Site](https://github.com/prettier/prettier-atom){target=_blank} | +| | [Atom](https://atom.io/) | [atom-mprettier](https://github.com/t9md/atom-mprettier) | [Visit Web Site](https://github.com/t9md/atom-mprettier){target=_blank} | +| | [Atom](https://atom.io/) | [atom-miniprettier](https://github.com/duailibe/atom-miniprettier) | [Visit Web Site](https://github.com/duailibe/atom-miniprettier){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier-emacs](https://github.com/prettier/prettier-emacs) | [Visit Web Site](https://github.com/prettier/prettier-emacs){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier.el](https://github.com/jscheid/prettier.el) | [Visit Web Site](https://github.com/jscheid/prettier.el){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [apheleia](https://github.com/raxod502/apheleia) | [Visit Web Site](https://github.com/raxod502/apheleia){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://prettier.io/docs/en/webstorm.html) | [Visit Web Site](https://prettier.io/docs/en/webstorm.html){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [JsPrettier](https://packagecontrol.io/packages/JsPrettier) | [Visit Web Site](https://packagecontrol.io/packages/JsPrettier){target=_blank} | +| | [vim](https://www.vim.org/) | [vim-prettier](https://github.com/prettier/vim-prettier) | [Visit Web Site](https://github.com/prettier/vim-prettier){target=_blank} | +| | visual_studio | [JavaScriptPrettier](https://github.com/madskristensen/JavaScriptPrettier) | [Visit Web Site](https://github.com/madskristensen/JavaScriptPrettier){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/esbenp.prettier-vscode){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes diff --git a/docs/descriptors/typescript_standard.md b/docs/descriptors/typescript_standard.md index cd63bc9f8b0..d2a66ac85f6 100644 --- a/docs/descriptors/typescript_standard.md +++ b/docs/descriptors/typescript_standard.md @@ -19,10 +19,10 @@ ## Configuration in MegaLinter -- Enable standard by adding `TYPESCRIPT_STANDARD` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable standard by adding `TYPESCRIPT_STANDARD` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable standard by adding `TYPESCRIPT_STANDARD` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable standard by adding `TYPESCRIPT_STANDARD` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `TYPESCRIPT_STANDARD` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `TYPESCRIPT_STANDARD` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |-------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -44,23 +44,23 @@ Use standard in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:---------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-----------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [linter-js-standard](https://atom.io/packages/linter-js-standard) | [Visit Web Site](https://atom.io/packages/linter-js-standard){target=_blank} | -| | [Atom](https://atom.io/) | [linter-js-standard-engine](https://atom.io/packages/linter-js-standard-engine) | [Visit Web Site](https://atom.io/packages/linter-js-standard-engine){target=_blank} | -| | [Atom](https://atom.io/) | [standard-formatter](https://atom.io/packages/standard-formatter) | [Visit Web Site](https://atom.io/packages/standard-formatter){target=_blank} | -| | [Brackets](http://brackets.io/) | [brackets-standard](https://github.com/ishamf/brackets-standard/) | [Visit Web Site](https://github.com/ishamf/brackets-standard/){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://blog.jetbrains.com/webstorm/2017/01/webstorm-2017-1-eap-171-2272/) | [Visit Web Site](https://blog.jetbrains.com/webstorm/2017/01/webstorm-2017-1-eap-171-2272/){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-standard](https://packagecontrol.io/packages/SublimeLinter-contrib-standard) | [Visit Web Site](https://packagecontrol.io/packages/SublimeLinter-contrib-standard){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [StandardFormat](https://packagecontrol.io/packages/StandardFormat) | [Visit Web Site](https://packagecontrol.io/packages/StandardFormat){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [https://marketplace.visualstudio.com/items?itemName=chenxsan.vscode-standardjs](vscode-standardjs) | [Visit Web Site](vscode-standardjs){target=_blank} | +| | [Atom](https://atom.io/) | [linter-js-standard](https://atom.io/packages/linter-js-standard) | [Visit Web Site](https://atom.io/packages/linter-js-standard){target=_blank} | +| | [Atom](https://atom.io/) | [linter-js-standard-engine](https://atom.io/packages/linter-js-standard-engine) | [Visit Web Site](https://atom.io/packages/linter-js-standard-engine){target=_blank} | +| | [Atom](https://atom.io/) | [standard-formatter](https://atom.io/packages/standard-formatter) | [Visit Web Site](https://atom.io/packages/standard-formatter){target=_blank} | +| | [Brackets](http://brackets.io/) | [brackets-standard](https://github.com/ishamf/brackets-standard/) | [Visit Web Site](https://github.com/ishamf/brackets-standard/){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://blog.jetbrains.com/webstorm/2017/01/webstorm-2017-1-eap-171-2272/) | [Visit Web Site](https://blog.jetbrains.com/webstorm/2017/01/webstorm-2017-1-eap-171-2272/){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [SublimeLinter-contrib-standard](https://packagecontrol.io/packages/SublimeLinter-contrib-standard) | [Visit Web Site](https://packagecontrol.io/packages/SublimeLinter-contrib-standard){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [StandardFormat](https://packagecontrol.io/packages/StandardFormat) | [Visit Web Site](https://packagecontrol.io/packages/StandardFormat){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [https://marketplace.visualstudio.com/items?itemName=chenxsan.vscode-standardjs](vscode-standardjs) | [Visit Web Site](vscode-standardjs){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------|:------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | ## Behind the scenes @@ -123,28 +123,3 @@ Flags (advanced): - [standard@15.0.1](https://www.npmjs.com/package/standard) - [@typescript-eslint/eslint-plugin](https://www.npmjs.com/package/@typescript-eslint/eslint-plugin) - [@typescript-eslint/parser](https://www.npmjs.com/package/@typescript-eslint/parser) - -### Example success log - -```shell -Results of standard linter (version 15.0.1) -See documentation on https://megalinter.github.io/descriptors/typescript_standard/ ------------------------------------------------ - -[SUCCESS] .automation/test/typescript/typescript_good_1.ts - - -``` - -### Example error log - -```shell -Results of standard linter (version 15.0.1) -See documentation on https://megalinter.github.io/descriptors/typescript_standard/ ------------------------------------------------ - -[ERROR] .automation/test/typescript/typescript_bad_1.ts - standard: Use JavaScript Standard Style (https://standardjs.com) - .automation/test/typescript/typescript_bad_1.ts:5:39: Parsing error: Unterminated regular expression literal. - -``` diff --git a/docs/descriptors/vbdotnet.md b/docs/descriptors/vbdotnet.md index 69d4af40872..9f45813c915 100644 --- a/docs/descriptors/vbdotnet.md +++ b/docs/descriptors/vbdotnet.md @@ -1,6 +1,6 @@ - + # Visual Basic .NET ## Linters @@ -21,3 +21,26 @@ | VBDOTNET_FILTER_REGEX_INCLUDE | Custom regex including filter | | | VBDOTNET_FILTER_REGEX_EXCLUDE | Custom regex excluding filter | | + +## Behind the scenes + +### Installation + +- Dockerfile commands : +```dockerfile +RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest + +ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" +``` + +- APK packages (Linux): + - [icu-libs](https://pkgs.alpinelinux.org/packages?branch=edge&name=icu-libs) + - [libcurl](https://pkgs.alpinelinux.org/packages?branch=edge&name=libcurl) + - [libintl](https://pkgs.alpinelinux.org/packages?branch=edge&name=libintl) + - [libssl1.1](https://pkgs.alpinelinux.org/packages?branch=edge&name=libssl1.1) + - [libstdc++](https://pkgs.alpinelinux.org/packages?branch=edge&name=libstdc++) + - [lttng-ust-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=lttng-ust-dev) + - [zlib](https://pkgs.alpinelinux.org/packages?branch=edge&name=zlib) + - [zlib-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=zlib-dev) diff --git a/docs/descriptors/vbdotnet_dotnet_format.md b/docs/descriptors/vbdotnet_dotnet_format.md index 2e43d31def8..af5acdaccf9 100644 --- a/docs/descriptors/vbdotnet_dotnet_format.md +++ b/docs/descriptors/vbdotnet_dotnet_format.md @@ -11,10 +11,10 @@ ## Configuration in MegaLinter -- Enable dotnet-format by adding `VBDOTNET_DOTNET_FORMAT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable dotnet-format by adding `VBDOTNET_DOTNET_FORMAT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable dotnet-format by adding `VBDOTNET_DOTNET_FORMAT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable dotnet-format by adding `VBDOTNET_DOTNET_FORMAT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `VBDOTNET_DOTNET_FORMAT` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `VBDOTNET_DOTNET_FORMAT` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |----------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -33,10 +33,10 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:----------------------------------------------|:----------------:|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | ## Behind the scenes @@ -93,34 +93,15 @@ Options: ### Installation on mega-linter Docker image -None - -### Example success log - -```shell -Results of dotnet-format linter (version 4.1.131201) -See documentation on https://megalinter.github.io/descriptors/vbdotnet_dotnet_format/ ------------------------------------------------ - -[SUCCESS] .automation/test/vbdotnet/vbdotnet_good_1.vb - Formatting code files in workspace '.automation/test/vbdotnet'. - Format complete in 1063ms. +- Dockerfile commands : +```dockerfile +# Parent descriptor install +RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest +ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" +# Linter install +RUN /usr/share/dotnet/dotnet tool install -g dotnet-format ``` -### Example error log - -```shell -Results of dotnet-format linter (version 4.1.131201) -See documentation on https://megalinter.github.io/descriptors/vbdotnet_dotnet_format/ ------------------------------------------------ - -[ERROR] .automation/test/vbdotnet/vbdotnet_bad_1.vb - Formatting code files in workspace '.automation/test/vbdotnet'. - vbdotnet/vbdotnet_bad_1.vb(4,4): Fix whitespace formatting. - vbdotnet/vbdotnet_bad_1.vb(4,20): Fix whitespace formatting. - vbdotnet/vbdotnet_bad_1.vb(5,7): Fix whitespace formatting. - Formatted code file '.automation/test/vbdotnet/vbdotnet_bad_1.vb'. - Format complete in 1188ms. - -``` diff --git a/docs/descriptors/xml.md b/docs/descriptors/xml.md index b1ffecb749c..42593bf9f60 100644 --- a/docs/descriptors/xml.md +++ b/docs/descriptors/xml.md @@ -1,6 +1,6 @@ - + # XML ## Linters diff --git a/docs/descriptors/xml_xmllint.md b/docs/descriptors/xml_xmllint.md index abef274dff7..ea94a0dd205 100644 --- a/docs/descriptors/xml_xmllint.md +++ b/docs/descriptors/xml_xmllint.md @@ -10,8 +10,8 @@ ## Configuration in MegaLinter -- Enable xmllint by adding `XML_XMLLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable xmllint by adding `XML_XMLLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable xmllint by adding `XML_XMLLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable xmllint by adding `XML_XMLLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-----------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------| @@ -30,24 +30,22 @@ This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -154,35 +152,3 @@ Libxml project home page: https://gitlab.gnome.org/GNOME/libxml2 - [libxml2-dev](https://pkgs.alpinelinux.org/packages?branch=edge&name=libxml2-dev) - [libxml2-utils](https://pkgs.alpinelinux.org/packages?branch=edge&name=libxml2-utils) - [libgcc](https://pkgs.alpinelinux.org/packages?branch=edge&name=libgcc) - -### Example success log - -```shell -Results of xmllint linter (version 20910) -See documentation on https://megalinter.github.io/descriptors/xml_xmllint/ ------------------------------------------------ - -[SUCCESS] .automation/test/xml/xml_good_1.xml - - - Tove - Jani - Reminder - Don't forget me this weekend! - - -``` - -### Example error log - -```shell -Results of xmllint linter (version 20910) -See documentation on https://megalinter.github.io/descriptors/xml_xmllint/ ------------------------------------------------ - -[ERROR] .automation/test/xml/xml_bad_1.xml - .automation/test/xml/xml_bad_1.xml:7: parser error : EndTag: ' - + # YAML ## Linters diff --git a/docs/descriptors/yaml_prettier.md b/docs/descriptors/yaml_prettier.md index f9d0bd2b636..75b0e3411a8 100644 --- a/docs/descriptors/yaml_prettier.md +++ b/docs/descriptors/yaml_prettier.md @@ -21,10 +21,10 @@ ## Configuration in MegaLinter -- Enable prettier by adding `YAML_PRETTIER` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable prettier by adding `YAML_PRETTIER` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable prettier by adding `YAML_PRETTIER` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable prettier by adding `YAML_PRETTIER` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) -- Enable **auto-fixes** by adding `YAML_PRETTIER` in [APPLY_FIXES variable](https://megalinter.github.io/configuration/#apply-fixes) +- Enable **auto-fixes** by adding `YAML_PRETTIER` in [APPLY_FIXES variable](https://oxsecurity.github.io/megalinter/latest/configuration/#apply-fixes) | Variable | Description | Default value | |-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -47,40 +47,38 @@ Use prettier in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|-----------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [Atom](https://atom.io/) | [prettier-atom](https://github.com/prettier/prettier-atom) | [Visit Web Site](https://github.com/prettier/prettier-atom){target=_blank} | -| | [Atom](https://atom.io/) | [atom-mprettier](https://github.com/t9md/atom-mprettier) | [Visit Web Site](https://github.com/t9md/atom-mprettier){target=_blank} | -| | [Atom](https://atom.io/) | [atom-miniprettier](https://github.com/duailibe/atom-miniprettier) | [Visit Web Site](https://github.com/duailibe/atom-miniprettier){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier-emacs](https://github.com/prettier/prettier-emacs) | [Visit Web Site](https://github.com/prettier/prettier-emacs){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier.el](https://github.com/jscheid/prettier.el) | [Visit Web Site](https://github.com/jscheid/prettier.el){target=_blank} | -| | [Emacs](https://www.gnu.org/software/emacs/) | [apheleia](https://github.com/raxod502/apheleia) | [Visit Web Site](https://github.com/raxod502/apheleia){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://prettier.io/docs/en/webstorm.html) | [Visit Web Site](https://prettier.io/docs/en/webstorm.html){target=_blank} | -| | [Sublime Text](https://www.sublimetext.com/) | [JsPrettier](https://packagecontrol.io/packages/JsPrettier) | [Visit Web Site](https://packagecontrol.io/packages/JsPrettier){target=_blank} | -| | [vim](https://www.vim.org/) | [vim-prettier](https://github.com/prettier/vim-prettier) | [Visit Web Site](https://github.com/prettier/vim-prettier){target=_blank} | -| | visual_studio | [JavaScriptPrettier](https://github.com/madskristensen/JavaScriptPrettier) | [Visit Web Site](https://github.com/madskristensen/JavaScriptPrettier){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) | [![Install in VsCode](https://github.com/megalinter/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/esbenp.prettier-vscode){target=_blank} | +| | [Atom](https://atom.io/) | [prettier-atom](https://github.com/prettier/prettier-atom) | [Visit Web Site](https://github.com/prettier/prettier-atom){target=_blank} | +| | [Atom](https://atom.io/) | [atom-mprettier](https://github.com/t9md/atom-mprettier) | [Visit Web Site](https://github.com/t9md/atom-mprettier){target=_blank} | +| | [Atom](https://atom.io/) | [atom-miniprettier](https://github.com/duailibe/atom-miniprettier) | [Visit Web Site](https://github.com/duailibe/atom-miniprettier){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier-emacs](https://github.com/prettier/prettier-emacs) | [Visit Web Site](https://github.com/prettier/prettier-emacs){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [prettier.el](https://github.com/jscheid/prettier.el) | [Visit Web Site](https://github.com/jscheid/prettier.el){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [apheleia](https://github.com/raxod502/apheleia) | [Visit Web Site](https://github.com/raxod502/apheleia){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://prettier.io/docs/en/webstorm.html) | [Visit Web Site](https://prettier.io/docs/en/webstorm.html){target=_blank} | +| | [Sublime Text](https://www.sublimetext.com/) | [JsPrettier](https://packagecontrol.io/packages/JsPrettier) | [Visit Web Site](https://packagecontrol.io/packages/JsPrettier){target=_blank} | +| | [vim](https://www.vim.org/) | [vim-prettier](https://github.com/prettier/vim-prettier) | [Visit Web Site](https://github.com/prettier/vim-prettier){target=_blank} | +| | visual_studio | [JavaScriptPrettier](https://github.com/madskristensen/JavaScriptPrettier) | [Visit Web Site](https://github.com/madskristensen/JavaScriptPrettier){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [prettier-vscode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) | [![Install in VsCode](https://github.com/oxsecurity/megalinter/raw/main/docs/assets/images/btn_install_vscode.png)](vscode:extension/esbenp.prettier-vscode){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes diff --git a/docs/descriptors/yaml_v8r.md b/docs/descriptors/yaml_v8r.md index d47b31c0436..7497d1b9d48 100644 --- a/docs/descriptors/yaml_v8r.md +++ b/docs/descriptors/yaml_v8r.md @@ -14,15 +14,15 @@ v8r checks the validity of JSON/YAML files if they have a matching schema define ## Configuration in MegaLinter -- Enable v8r by adding `YAML_V8R` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable v8r by adding `YAML_V8R` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable v8r by adding `YAML_V8R` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable v8r by adding `YAML_V8R` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |--------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------| | YAML_V8R_ARGUMENTS | User custom arguments to add in linter CLI call
Ex: `-s --foo "bar"` | | | YAML_V8R_FILTER_REGEX_INCLUDE | Custom regex including filter
Ex: `(src\|lib)` | Include every file | | YAML_V8R_FILTER_REGEX_EXCLUDE | Custom regex excluding filter
Ex: `(test\|examples)` | Exclude no file | -| YAML_V8R_CLI_LINT_MODE | Override default CLI lint mode
- `file`: Calls the linter for each file
- `list_of_files`: Call the linter with the list of files as argument
- `project`: Call the linter from the root of the project | `file` | +| YAML_V8R_CLI_LINT_MODE | Override default CLI lint mode
- `file`: Calls the linter for each file
- `list_of_files`: Call the linter with the list of files as argument
- `project`: Call the linter from the root of the project | `list_of_files` | | YAML_V8R_FILE_EXTENSIONS | Allowed file extensions. `"*"` matches any extension, `""` matches empty extension. Empty list excludes all files
Ex: `[".py", ""]` | `[".yml", ".yaml"]` | | YAML_V8R_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files
Ex: `["Dockerfile(-.+)?", "Jenkinsfile"]` | Include every file | | YAML_V8R_PRE_COMMANDS | List of bash commands to run before the linter | None | @@ -36,33 +36,31 @@ Use v8r in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:--------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|----------------------------------------------------------------|:-----------------------------------------------------------------------------:| -| | [Eclipse](https://www.eclipse.org/) | [native support](https://www.eclipse.org/) | [Visit Web Site](https://www.eclipse.org/){target=_blank} | -| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://www.jetbrains.com/products/#type=ide) | [Visit Web Site](https://www.jetbrains.com/products/#type=ide){target=_blank} | -| | [vim](https://www.vim.org/) | [vison](https://github.com/Quramy/vison) | [Visit Web Site](https://github.com/Quramy/vison){target=_blank} | -| | [Visual Studio Code](https://code.visualstudio.com/) | [native support](https://code.visualstudio.com/) | [Visit Web Site](https://code.visualstudio.com/){target=_blank} | +| | [Eclipse](https://www.eclipse.org/) | [native support](https://www.eclipse.org/) | [Visit Web Site](https://www.eclipse.org/){target=_blank} | +| | [IDEA](https://www.jetbrains.com/products.html#type=ide) | [native support](https://www.jetbrains.com/products/#type=ide) | [Visit Web Site](https://www.jetbrains.com/products/#type=ide){target=_blank} | +| | [vim](https://www.vim.org/) | [vison](https://github.com/Quramy/vison) | [Visit Web Site](https://github.com/Quramy/vison){target=_blank} | +| | [Visual Studio Code](https://code.visualstudio.com/) | [native support](https://code.visualstudio.com/) | [Visit Web Site](https://code.visualstudio.com/){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -74,7 +72,7 @@ This linter is available in the following flavours ### How the linting is performed -- v8r is called one time by identified file +- v8r is called once with the list of files as arguments ### Example calls @@ -119,4 +117,4 @@ Options: ### Installation on mega-linter Docker image - NPM packages (node.js): - - [v8r@0.6.1](https://www.npmjs.com/package/v8r) + - [v8r](https://www.npmjs.com/package/v8r) diff --git a/docs/descriptors/yaml_yamllint.md b/docs/descriptors/yaml_yamllint.md index 63a19679f36..97c9768405c 100644 --- a/docs/descriptors/yaml_yamllint.md +++ b/docs/descriptors/yaml_yamllint.md @@ -7,15 +7,15 @@ - Version in MegaLinter: **1.26.3** - Visit [Official Web Site](https://yamllint.readthedocs.io/){target=_blank} - See [How to configure yamllint rules](https://yamllint.readthedocs.io/en/stable/configuration.html#configuration){target=_blank} - - If custom `.yamllint.yml` config file is not found, [.yamllint.yml](https://github.com/megalinter/megalinter/tree/main/TEMPLATES/.yamllint.yml){target=_blank} will be used + - If custom `.yamllint.yml` config file is not found, [.yamllint.yml](https://github.com/oxsecurity/megalinter/tree/main/TEMPLATES/.yamllint.yml){target=_blank} will be used - See [Index of problems detected by yamllint](https://yamllint.readthedocs.io/en/stable/rules.html){target=_blank} [![yamllint - GitHub](https://gh-card.dev/repos/adrienverge/yamllint.svg?fullname=)](https://github.com/adrienverge/yamllint){target=_blank} ## Configuration in MegaLinter -- Enable yamllint by adding `YAML_YAMLLINT` in [ENABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) -- Disable yamllint by adding `YAML_YAMLLINT` in [DISABLE_LINTERS variable](https://megalinter.github.io/configuration/#activation-and-deactivation) +- Enable yamllint by adding `YAML_YAMLLINT` in [ENABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) +- Disable yamllint by adding `YAML_YAMLLINT` in [DISABLE_LINTERS variable](https://oxsecurity.github.io/megalinter/latest/configuration/#activation-and-deactivation) | Variable | Description | Default value | |-------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------| @@ -38,31 +38,29 @@ Use yamllint in your favorite IDE to catch errors before MegaLinter ! | | IDE | Extension Name | Install | |:------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------|-------------------------------------------------------------------|:--------------------------------------------------------------------------------------:| -| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](https://github.com/krzysztof-magosa/flycheck-yamllint) | [Visit Web Site](https://github.com/krzysztof-magosa/flycheck-yamllint){target=_blank} | -| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | +| | [Emacs](https://www.gnu.org/software/emacs/) | [flycheck](https://github.com/krzysztof-magosa/flycheck-yamllint) | [Visit Web Site](https://github.com/krzysztof-magosa/flycheck-yamllint){target=_blank} | +| | [vim](https://www.vim.org/) | [ale](https://github.com/w0rp/ale) | [Visit Web Site](https://github.com/w0rp/ale){target=_blank} | ## MegaLinter Flavours This linter is available in the following flavours -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](https://megalinter.github.io/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](https://megalinter.github.io/flavors/dart/) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](https://megalinter.github.io/flavors/documentation/) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](https://megalinter.github.io/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](https://megalinter.github.io/flavors/go/) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](https://megalinter.github.io/flavors/java/) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](https://megalinter.github.io/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](https://megalinter.github.io/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](https://megalinter.github.io/flavors/python/) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](https://megalinter.github.io/flavors/ruby/) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](https://megalinter.github.io/flavors/rust/) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](https://megalinter.github.io/flavors/salesforce/) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](https://megalinter.github.io/flavors/scala/) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](https://megalinter.github.io/flavors/swift/) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](https://megalinter.github.io/flavors/terraform/) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](https://oxsecurity.github.io/megalinter/latest/flavors/ci_light/) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](https://oxsecurity.github.io/megalinter/latest/flavors/documentation/) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](https://oxsecurity.github.io/megalinter/latest/flavors/dotnet/) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](https://oxsecurity.github.io/megalinter/latest/flavors/go/) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](https://oxsecurity.github.io/megalinter/latest/flavors/java/) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](https://oxsecurity.github.io/megalinter/latest/flavors/javascript/) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](https://oxsecurity.github.io/megalinter/latest/flavors/php/) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](https://oxsecurity.github.io/megalinter/latest/flavors/python/) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](https://oxsecurity.github.io/megalinter/latest/flavors/ruby/) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](https://oxsecurity.github.io/megalinter/latest/flavors/rust/) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](https://oxsecurity.github.io/megalinter/latest/flavors/salesforce/) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [swift](https://oxsecurity.github.io/megalinter/latest/flavors/swift/) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](https://oxsecurity.github.io/megalinter/latest/flavors/terraform/) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | ## Behind the scenes @@ -121,29 +119,3 @@ optional arguments: - PIP packages (Python): - [yamllint](https://pypi.org/project/yamllint) - -### Example success log - -```shell -Results of yamllint linter (version 1.25.0) -See documentation on https://megalinter.github.io/descriptors/yaml_yamllint/ ------------------------------------------------ - -[SUCCESS] .automation/test/yaml/yml_good_1.yml - - -``` - -### Example error log - -```shell -Results of yamllint linter (version 1.25.0) -See documentation on https://megalinter.github.io/descriptors/yaml_yamllint/ ------------------------------------------------ - -[ERROR] .automation/test/yaml/yml_bad_1.yml - .automation/test/yaml/yml_bad_1.yml - 10:1 warning missing document start "---" (document-start) - 11:16 error syntax error: mapping values are not allowed here (syntax) - -``` diff --git a/docs/flavors.md b/docs/flavors.md index 23d6c0c7ff5..535dbfd3969 100644 --- a/docs/flavors.md +++ b/docs/flavors.md @@ -12,24 +12,23 @@ To improve run performances, we generate **Flavored MegaLinter images** containi _The following table does not display docker pulls from [MegaLinter v4 images](https://hub.docker.com/r/nvuillam/mega-linter)._ -| | Flavor | Description | Embedded linters | Info | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [all](https://megalinter.github.io/supported-linters/) | Default MegaLinter Flavor | 97 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter) | -| | [ci_light](flavors/ci_light.md#readme) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 16 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) | -| | [dart](flavors/dart.md#readme) | Optimized for DART based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) | -| | [documentation](flavors/documentation.md#readme) | MegaLinter for documentation projects | 41 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) | -| | [dotnet](flavors/dotnet.md#readme) | Optimized for C, C++, C# or VB based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) | -| | [go](flavors/go.md#readme) | Optimized for GO based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) | -| | [java](flavors/java.md#readme) | Optimized for JAVA based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) | -| | [javascript](flavors/javascript.md#readme) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) | -| | [php](flavors/php.md#readme) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) | -| | [python](flavors/python.md#readme) | Optimized for PYTHON based projects | 49 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) | -| | [ruby](flavors/ruby.md#readme) | Optimized for RUBY based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) | -| | [rust](flavors/rust.md#readme) | Optimized for RUST based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) | -| | [salesforce](flavors/salesforce.md#readme) | Optimized for Salesforce based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) | -| | [scala](flavors/scala.md#readme) | Optimized for SCALA based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) | -| | [swift](flavors/swift.md#readme) | Optimized for SWIFT based projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) | -| | [terraform](flavors/terraform.md#readme) | Optimized for TERRAFORM based projects | 47 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) | +| | Flavor | Description | Embedded linters | Info | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------|:-----------------------------------------------------------------------|:----------------:|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [all](https://oxsecurity.github.io/megalinter/latest/supported-linters/) | Default MegaLinter Flavor | 101 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter) | +| | [ci_light](flavors/ci_light.md#readme) | Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML | 18 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) | +| | [documentation](flavors/documentation.md#readme) | MegaLinter for documentation projects | 42 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) | +| | [dotnet](flavors/dotnet.md#readme) | Optimized for C, C++, C# or VB based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) | +| | [go](flavors/go.md#readme) | Optimized for GO based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) | +| | [java](flavors/java.md#readme) | Optimized for JAVA based projects | 44 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) | +| | [javascript](flavors/javascript.md#readme) | Optimized for JAVASCRIPT or TYPESCRIPT based projects | 51 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) | +| | [php](flavors/php.md#readme) | Optimized for PHP based projects | 46 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) | +| | [python](flavors/python.md#readme) | Optimized for PYTHON based projects | 50 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) | +| | [ruby](flavors/ruby.md#readme) | Optimized for RUBY based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) | +| | [rust](flavors/rust.md#readme) | Optimized for RUST based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) | +| | [salesforce](flavors/salesforce.md#readme) | Optimized for Salesforce based projects | 45 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) | +| | [security](flavors/security.md#readme) | Optimized for security | 20 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) | +| | [swift](flavors/swift.md#readme) | Optimized for SWIFT based projects | 43 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) | +| | [terraform](flavors/terraform.md#readme) | Optimized for TERRAFORM based projects | 48 | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) ![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) | If you need a new flavor, [post an issue](https://github.com/megalinter/megalinter/issues) :wink: diff --git a/docs/flavors/ci_light.md b/docs/flavors/ci_light.md index af483886b25..e41ec62c4ef 100644 --- a/docs/flavors/ci_light.md +++ b/docs/flavors/ci_light.md @@ -1,7 +1,7 @@ # ci_light MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ci_light/v5) -![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ci_light) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ci_light/v6) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ci_light) ## Description @@ -9,45 +9,47 @@ Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/ci_light@v5** -- Docker image: **megalinter/megalinter-ci_light:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor ci_light` +- [GitHub Action](https://oxsecurity.github.io/megalinter/latest/installation/#github-action): **oxsecurity/megalinter/flavors/ci_light@v6** +- Docker image: **oxsecurity/megalinter-ci_light:v6** +- [mega-linter-runner](https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/): `mega-linter-runner --flavor ci_light` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | +| | Language | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | | [shellcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [BASH_SHFMT](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**GROOVY**](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy/) | [npm-groovy-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [![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) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------|-------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ENV**](https://oxsecurity.github.io/megalinter/latest/descriptors/env/) | [dotenv-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**JSON**](https://oxsecurity.github.io/megalinter/latest/descriptors/json/) | [jsonlint](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [JSON_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [JSON_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**XML**](https://oxsecurity.github.io/megalinter/latest/descriptors/xml/) | [xmllint](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | [XML_XMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | | +| | [**YAML**](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml/) | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [YAML_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------|---------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------|:----------:|:------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**DOCKERFILE**](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile/) | [hadolint](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------|--------------------------------------------------------------------|------------------------------------------------------------------------|:----------:|:--------------------------------------------------------------------------------------------------------------:| -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-----------------------------:|----------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | | [git_diff](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | diff --git a/docs/flavors/dart.md b/docs/flavors/dart.md index 82f86e7afd0..845508ed576 100644 --- a/docs/flavors/dart.md +++ b/docs/flavors/dart.md @@ -1,6 +1,6 @@ # dart MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v5) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dart/v6-alpha) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dart) ## Description @@ -9,71 +9,73 @@ Optimized for DART based projects ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/dart@v5** -- Docker image: **megalinter/megalinter-dart:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor dart` +- [GitHub Action](https://megalinter.github.io/v6-alpha/installation/#github-action): **megalinter/megalinter/flavors/dart@v6-alpha** +- Docker image: **megalinter/megalinter-dart:v6-alpha** +- [mega-linter-runner](https://megalinter.github.io/v6-alpha/mega-linter-runner/): `mega-linter-runner --flavor dart` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**DART**](https://megalinter.github.io/descriptors/dart/) | [dartanalyzer](https://megalinter.github.io/descriptors/dart_dartanalyzer/) | [DART_DARTANALYZER](https://megalinter.github.io/descriptors/dart_dartanalyzer/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/dart-lang/sdk)](https://github.com/dart-lang/sdk/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**KOTLIN**](https://megalinter.github.io/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/descriptors/kotlin_ktlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**SQL**](https://megalinter.github.io/descriptors/sql/) | [sql-lint](https://megalinter.github.io/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/descriptors/sql_sql_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://megalinter.github.io/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/descriptors/sql_sqlfluff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | +| | Language | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://megalinter.github.io/v6-alpha/descriptors/bash/) | [bash-exec](https://megalinter.github.io/v6-alpha/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/v6-alpha/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://megalinter.github.io/v6-alpha/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/v6-alpha/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://megalinter.github.io/v6-alpha/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/v6-alpha/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**DART**](https://megalinter.github.io/v6-alpha/descriptors/dart/) | [dartanalyzer](https://megalinter.github.io/v6-alpha/descriptors/dart_dartanalyzer/) | [DART_DARTANALYZER](https://megalinter.github.io/v6-alpha/descriptors/dart_dartanalyzer/) | [![GitHub stars](https://img.shields.io/github/stars/dart-lang/sdk?cacheSeconds=3600)](https://github.com/dart-lang/sdk) | +| | [**GROOVY**](https://megalinter.github.io/v6-alpha/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/v6-alpha/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/v6-alpha/descriptors/groovy_npm_groovy_lint/) | [![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) | +| | [**KOTLIN**](https://megalinter.github.io/v6-alpha/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/v6-alpha/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/v6-alpha/descriptors/kotlin_ktlint/) | [![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) | +| | [**SQL**](https://megalinter.github.io/v6-alpha/descriptors/sql/) | [sql-lint](https://megalinter.github.io/v6-alpha/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/v6-alpha/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://megalinter.github.io/v6-alpha/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/v6-alpha/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://megalinter.github.io/descriptors/css/) | [stylelint](https://megalinter.github.io/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/descriptors/css_stylelint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://megalinter.github.io/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/descriptors/css_scss_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://megalinter.github.io/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://megalinter.github.io/descriptors/html/) | [htmlhint](https://megalinter.github.io/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/descriptors/html_htmlhint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**MARKDOWN**](https://megalinter.github.io/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/descriptors/markdown_markdownlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://megalinter.github.io/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/descriptors/markdown_remark_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://megalinter.github.io/descriptors/protobuf/) | [protolint](https://megalinter.github.io/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/descriptors/protobuf_protolint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://megalinter.github.io/v6-alpha/descriptors/css/) | [stylelint](https://megalinter.github.io/v6-alpha/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/v6-alpha/descriptors/css_stylelint/) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://megalinter.github.io/v6-alpha/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/v6-alpha/descriptors/css_scss_lint/) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://megalinter.github.io/v6-alpha/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/v6-alpha/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/v6-alpha/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://megalinter.github.io/v6-alpha/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/v6-alpha/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/v6-alpha/descriptors/graphql_graphql_schema_linter/) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://megalinter.github.io/v6-alpha/descriptors/html/) | [htmlhint](https://megalinter.github.io/v6-alpha/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/v6-alpha/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://megalinter.github.io/v6-alpha/descriptors/json/) | [jsonlint](https://megalinter.github.io/v6-alpha/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/v6-alpha/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://megalinter.github.io/v6-alpha/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/v6-alpha/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://megalinter.github.io/v6-alpha/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/v6-alpha/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://megalinter.github.io/v6-alpha/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/v6-alpha/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**MARKDOWN**](https://megalinter.github.io/v6-alpha/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/v6-alpha/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/v6-alpha/descriptors/markdown_markdownlint/) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [remark-lint](https://megalinter.github.io/v6-alpha/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/v6-alpha/descriptors/markdown_remark_lint/) | [![GitHub stars](https://img.shields.io/github/stars/remarkjs/remark-lint?cacheSeconds=3600)](https://github.com/remarkjs/remark-lint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://megalinter.github.io/v6-alpha/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/v6-alpha/descriptors/markdown_markdown_link_check/) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://megalinter.github.io/v6-alpha/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/v6-alpha/descriptors/markdown_markdown_table_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://megalinter.github.io/v6-alpha/descriptors/protobuf/) | [protolint](https://megalinter.github.io/v6-alpha/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/v6-alpha/descriptors/protobuf_protolint/) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**XML**](https://megalinter.github.io/v6-alpha/descriptors/xml/) | [xmllint](https://megalinter.github.io/v6-alpha/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/v6-alpha/descriptors/xml_xmllint/) | | +| | [**YAML**](https://megalinter.github.io/v6-alpha/descriptors/yaml/) | [prettier](https://megalinter.github.io/v6-alpha/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/v6-alpha/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://megalinter.github.io/v6-alpha/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/v6-alpha/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://megalinter.github.io/v6-alpha/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/v6-alpha/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.github.io/descriptors/action/) | [actionlint](https://megalinter.github.io/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/descriptors/action_actionlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://megalinter.github.io/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://megalinter.github.io/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**KUBERNETES**](https://megalinter.github.io/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://megalinter.github.io/descriptors/openapi/) | [spectral](https://megalinter.github.io/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/descriptors/openapi_spectral/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**SNAKEMAKE**](https://megalinter.github.io/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/descriptors/snakemake_snakemake/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | [SNAKEMAKE_SNAKEFMT](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://megalinter.github.io/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.github.io/v6-alpha/descriptors/action/) | [actionlint](https://megalinter.github.io/v6-alpha/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/v6-alpha/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.github.io/v6-alpha/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/v6-alpha/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/v6-alpha/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**DOCKERFILE**](https://megalinter.github.io/v6-alpha/descriptors/dockerfile/) | [hadolint](https://megalinter.github.io/v6-alpha/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/v6-alpha/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://megalinter.github.io/v6-alpha/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/v6-alpha/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/v6-alpha/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**KUBERNETES**](https://megalinter.github.io/v6-alpha/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/v6-alpha/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/v6-alpha/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://megalinter.github.io/v6-alpha/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/v6-alpha/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://megalinter.github.io/v6-alpha/descriptors/openapi/) | [spectral](https://megalinter.github.io/v6-alpha/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/v6-alpha/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.github.io/v6-alpha/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/v6-alpha/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/v6-alpha/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**TEKTON**](https://megalinter.github.io/v6-alpha/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/v6-alpha/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/v6-alpha/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.github.io/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/descriptors/copypaste_jscpd/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://megalinter.github.io/descriptors/credentials/) | [secretlint](https://megalinter.github.io/descriptors/credentials_secretlint/) | [CREDENTIALS_SECRETLINT](https://megalinter.github.io/descriptors/credentials_secretlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://megalinter.github.io/descriptors/spell/) | [misspell](https://megalinter.github.io/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/descriptors/spell_misspell/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://megalinter.github.io/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/descriptors/spell_cspell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.github.io/v6-alpha/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/v6-alpha/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/v6-alpha/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | | [git_diff](https://megalinter.github.io/v6-alpha/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://megalinter.github.io/v6-alpha/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://megalinter.github.io/v6-alpha/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://megalinter.github.io/v6-alpha/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://megalinter.github.io/v6-alpha/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://megalinter.github.io/v6-alpha/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://megalinter.github.io/v6-alpha/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://megalinter.github.io/v6-alpha/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://megalinter.github.io/v6-alpha/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://megalinter.github.io/v6-alpha/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://megalinter.github.io/v6-alpha/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://megalinter.github.io/v6-alpha/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://megalinter.github.io/v6-alpha/descriptors/spell/) | [misspell](https://megalinter.github.io/v6-alpha/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/v6-alpha/descriptors/spell_misspell/) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://megalinter.github.io/v6-alpha/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/v6-alpha/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/flavors/documentation.md b/docs/flavors/documentation.md index b215f07caf7..0d6ce83dc77 100644 --- a/docs/flavors/documentation.md +++ b/docs/flavors/documentation.md @@ -1,7 +1,7 @@ # documentation MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-documentation/v5) -![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-documentation) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-documentation/v6) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-documentation) ## Description @@ -9,70 +9,71 @@ MegaLinter for documentation projects ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/documentation@v5** -- Docker image: **megalinter/megalinter-documentation:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor documentation` +- [GitHub Action](https://oxsecurity.github.io/megalinter/latest/installation/#github-action): **oxsecurity/megalinter/flavors/documentation@v6** +- Docker image: **oxsecurity/megalinter-documentation:v6** +- [mega-linter-runner](https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/): `mega-linter-runner --flavor documentation` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**KOTLIN**](https://megalinter.github.io/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/descriptors/kotlin_ktlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**SQL**](https://megalinter.github.io/descriptors/sql/) | [sql-lint](https://megalinter.github.io/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/descriptors/sql_sql_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://megalinter.github.io/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/descriptors/sql_sqlfluff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | +| | Language | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://oxsecurity.github.io/megalinter/latest/descriptors/bash/) | [bash-exec](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | [BASH_EXEC](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [BASH_SHFMT](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**GROOVY**](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy/) | [npm-groovy-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [![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) | +| | [**KOTLIN**](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin/) | [ktlint](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [![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) | +| | [**SQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/sql/) | [sql-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://megalinter.github.io/descriptors/css/) | [stylelint](https://megalinter.github.io/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/descriptors/css_stylelint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://megalinter.github.io/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/descriptors/css_scss_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://megalinter.github.io/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://megalinter.github.io/descriptors/html/) | [htmlhint](https://megalinter.github.io/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/descriptors/html_htmlhint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**MARKDOWN**](https://megalinter.github.io/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/descriptors/markdown_markdownlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://megalinter.github.io/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/descriptors/markdown_remark_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://megalinter.github.io/descriptors/protobuf/) | [protolint](https://megalinter.github.io/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/descriptors/protobuf_protolint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://oxsecurity.github.io/megalinter/latest/descriptors/css/) | [stylelint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [CSS_STYLELINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://oxsecurity.github.io/megalinter/latest/descriptors/env/) | [dotenv-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql/) | [graphql-schema-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://oxsecurity.github.io/megalinter/latest/descriptors/html/) | [htmlhint](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://oxsecurity.github.io/megalinter/latest/descriptors/json/) | [jsonlint](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [JSON_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [JSON_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**MARKDOWN**](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown/) | [markdownlint](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf/) | [protolint](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**XML**](https://oxsecurity.github.io/megalinter/latest/descriptors/xml/) | [xmllint](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | [XML_XMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | | +| | [**YAML**](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml/) | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [YAML_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.github.io/descriptors/action/) | [actionlint](https://megalinter.github.io/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/descriptors/action_actionlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://megalinter.github.io/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://megalinter.github.io/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**KUBERNETES**](https://megalinter.github.io/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://megalinter.github.io/descriptors/openapi/) | [spectral](https://megalinter.github.io/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/descriptors/openapi_spectral/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**SNAKEMAKE**](https://megalinter.github.io/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/descriptors/snakemake_snakemake/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | [SNAKEMAKE_SNAKEFMT](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://megalinter.github.io/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://oxsecurity.github.io/megalinter/latest/descriptors/action/) | [actionlint](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible/) | [ansible-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**DOCKERFILE**](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile/) | [hadolint](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig/) | [editorconfig-checker](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**KUBERNETES**](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes/) | [kubeval](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi/) | [spectral](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake/) | [snakemake](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**TEKTON**](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton/) | [tekton-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.github.io/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/descriptors/copypaste_jscpd/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://megalinter.github.io/descriptors/credentials/) | [secretlint](https://megalinter.github.io/descriptors/credentials_secretlint/) | [CREDENTIALS_SECRETLINT](https://megalinter.github.io/descriptors/credentials_secretlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://megalinter.github.io/descriptors/spell/) | [misspell](https://megalinter.github.io/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/descriptors/spell_misspell/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://megalinter.github.io/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/descriptors/spell_cspell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste/) | [jscpd](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | | [git_diff](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://oxsecurity.github.io/megalinter/latest/descriptors/spell/) | [misspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [SPELL_CSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/flavors/dotnet.md b/docs/flavors/dotnet.md index af51f3a60a5..c4c4763331c 100644 --- a/docs/flavors/dotnet.md +++ b/docs/flavors/dotnet.md @@ -1,7 +1,7 @@ # dotnet MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-dotnet/v5) -![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-dotnet) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-dotnet/v6) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-dotnet) ## Description @@ -9,78 +9,79 @@ Optimized for C, C++, C# or VB based projects ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/dotnet@v5** -- Docker image: **megalinter/megalinter-dotnet:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor dotnet` +- [GitHub Action](https://oxsecurity.github.io/megalinter/latest/installation/#github-action): **oxsecurity/megalinter/flavors/dotnet@v6** +- Docker image: **oxsecurity/megalinter-dotnet:v6** +- [mega-linter-runner](https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/): `mega-linter-runner --flavor dotnet` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**C**](https://megalinter.github.io/descriptors/c/) | [cpplint](https://megalinter.github.io/descriptors/c_cpplint/) | [C_CPPLINT](https://megalinter.github.io/descriptors/c_cpplint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cpplint/cpplint)](https://github.com/cpplint/cpplint/commits) | -| | [**C++** (CPP)](https://megalinter.github.io/descriptors/cpp/) | [cpplint](https://megalinter.github.io/descriptors/cpp_cpplint/) | [CPP_CPPLINT](https://megalinter.github.io/descriptors/cpp_cpplint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cpplint/cpplint)](https://github.com/cpplint/cpplint/commits) | -| | [**C#** (CSHARP)](https://megalinter.github.io/descriptors/csharp/) | [dotnet-format](https://megalinter.github.io/descriptors/csharp_dotnet_format/) | [CSHARP_DOTNET_FORMAT](https://megalinter.github.io/descriptors/csharp_dotnet_format/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotnet/format)](https://github.com/dotnet/format/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**KOTLIN**](https://megalinter.github.io/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/descriptors/kotlin_ktlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**POWERSHELL**](https://megalinter.github.io/descriptors/powershell/) | [powershell](https://megalinter.github.io/descriptors/powershell_powershell/) | [POWERSHELL_POWERSHELL](https://megalinter.github.io/descriptors/powershell_powershell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PowerShell/PSScriptAnalyzer)](https://github.com/PowerShell/PSScriptAnalyzer/commits) | -| | [**SQL**](https://megalinter.github.io/descriptors/sql/) | [sql-lint](https://megalinter.github.io/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/descriptors/sql_sql_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://megalinter.github.io/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/descriptors/sql_sqlfluff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | -| | | [tsqllint](https://megalinter.github.io/descriptors/sql_tsqllint/) | [SQL_TSQLLINT](https://megalinter.github.io/descriptors/sql_tsqllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tsqllint/tsqllint)](https://github.com/tsqllint/tsqllint/commits) | -| | [**Visual Basic .NET** (VBDOTNET)](https://megalinter.github.io/descriptors/vbdotnet/) | [dotnet-format](https://megalinter.github.io/descriptors/vbdotnet_dotnet_format/) | [VBDOTNET_DOTNET_FORMAT](https://megalinter.github.io/descriptors/vbdotnet_dotnet_format/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotnet/format)](https://github.com/dotnet/format/commits) | +| | Language | Linter | Configuration key | Additional | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://oxsecurity.github.io/megalinter/latest/descriptors/bash/) | [bash-exec](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | [BASH_EXEC](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [BASH_SHFMT](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**C**](https://oxsecurity.github.io/megalinter/latest/descriptors/c/) | [cpplint](https://oxsecurity.github.io/megalinter/latest/descriptors/c_cpplint/) | [C_CPPLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/c_cpplint/) | | +| | [**C++** (CPP)](https://oxsecurity.github.io/megalinter/latest/descriptors/cpp/) | [cpplint](https://oxsecurity.github.io/megalinter/latest/descriptors/cpp_cpplint/) | [CPP_CPPLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/cpp_cpplint/) | [![GitHub stars](https://img.shields.io/github/stars/cpplint/cpplint?cacheSeconds=3600)](https://github.com/cpplint/cpplint) | +| | [**C#** (CSHARP)](https://oxsecurity.github.io/megalinter/latest/descriptors/csharp/) | [dotnet-format](https://oxsecurity.github.io/megalinter/latest/descriptors/csharp_dotnet_format/) | [CSHARP_DOTNET_FORMAT](https://oxsecurity.github.io/megalinter/latest/descriptors/csharp_dotnet_format/) | [![GitHub stars](https://img.shields.io/github/stars/dotnet/format?cacheSeconds=3600)](https://github.com/dotnet/format) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**GROOVY**](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy/) | [npm-groovy-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [![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) | +| | [**KOTLIN**](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin/) | [ktlint](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [![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) | +| | [**POWERSHELL**](https://oxsecurity.github.io/megalinter/latest/descriptors/powershell/) | [powershell](https://oxsecurity.github.io/megalinter/latest/descriptors/powershell_powershell/) | [POWERSHELL_POWERSHELL](https://oxsecurity.github.io/megalinter/latest/descriptors/powershell_powershell/) | [![GitHub stars](https://img.shields.io/github/stars/PowerShell/PSScriptAnalyzer?cacheSeconds=3600)](https://github.com/PowerShell/PSScriptAnalyzer) | +| | [**SQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/sql/) | [sql-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | +| | | [tsqllint](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_tsqllint/) | [SQL_TSQLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_tsqllint/) | [![GitHub stars](https://img.shields.io/github/stars/tsqllint/tsqllint?cacheSeconds=3600)](https://github.com/tsqllint/tsqllint) | +| | [**Visual Basic .NET** (VBDOTNET)](https://oxsecurity.github.io/megalinter/latest/descriptors/vbdotnet/) | [dotnet-format](https://oxsecurity.github.io/megalinter/latest/descriptors/vbdotnet_dotnet_format/) | [VBDOTNET_DOTNET_FORMAT](https://oxsecurity.github.io/megalinter/latest/descriptors/vbdotnet_dotnet_format/) | ![formatter](https://shields.io/badge/-format-yellow) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://megalinter.github.io/descriptors/css/) | [stylelint](https://megalinter.github.io/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/descriptors/css_stylelint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://megalinter.github.io/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/descriptors/css_scss_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://megalinter.github.io/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://megalinter.github.io/descriptors/html/) | [htmlhint](https://megalinter.github.io/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/descriptors/html_htmlhint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**MARKDOWN**](https://megalinter.github.io/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/descriptors/markdown_markdownlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://megalinter.github.io/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/descriptors/markdown_remark_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://megalinter.github.io/descriptors/protobuf/) | [protolint](https://megalinter.github.io/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/descriptors/protobuf_protolint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://oxsecurity.github.io/megalinter/latest/descriptors/css/) | [stylelint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [CSS_STYLELINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://oxsecurity.github.io/megalinter/latest/descriptors/env/) | [dotenv-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql/) | [graphql-schema-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://oxsecurity.github.io/megalinter/latest/descriptors/html/) | [htmlhint](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://oxsecurity.github.io/megalinter/latest/descriptors/json/) | [jsonlint](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [JSON_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [JSON_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**MARKDOWN**](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown/) | [markdownlint](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf/) | [protolint](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**XML**](https://oxsecurity.github.io/megalinter/latest/descriptors/xml/) | [xmllint](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | [XML_XMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | | +| | [**YAML**](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml/) | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [YAML_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.github.io/descriptors/action/) | [actionlint](https://megalinter.github.io/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/descriptors/action_actionlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://megalinter.github.io/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**ARM**](https://megalinter.github.io/descriptors/arm/) | [arm-ttk](https://megalinter.github.io/descriptors/arm_arm_ttk/) | [ARM_ARM_TTK](https://megalinter.github.io/descriptors/arm_arm_ttk/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/Azure/arm-ttk)](https://github.com/Azure/arm-ttk/commits) | -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://megalinter.github.io/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**GHERKIN**](https://megalinter.github.io/descriptors/gherkin/) | [gherkin-lint](https://megalinter.github.io/descriptors/gherkin_gherkin_lint/) | [GHERKIN_GHERKIN_LINT](https://megalinter.github.io/descriptors/gherkin_gherkin_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/vsiakka/gherkin-lint)](https://github.com/vsiakka/gherkin-lint/commits) | -| | [**KUBERNETES**](https://megalinter.github.io/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://megalinter.github.io/descriptors/openapi/) | [spectral](https://megalinter.github.io/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/descriptors/openapi_spectral/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**SNAKEMAKE**](https://megalinter.github.io/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/descriptors/snakemake_snakemake/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | [SNAKEMAKE_SNAKEFMT](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://megalinter.github.io/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://oxsecurity.github.io/megalinter/latest/descriptors/action/) | [actionlint](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible/) | [ansible-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**ARM**](https://oxsecurity.github.io/megalinter/latest/descriptors/arm/) | [arm-ttk](https://oxsecurity.github.io/megalinter/latest/descriptors/arm_arm_ttk/) | [ARM_ARM_TTK](https://oxsecurity.github.io/megalinter/latest/descriptors/arm_arm_ttk/) | | +| | [**DOCKERFILE**](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile/) | [hadolint](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig/) | [editorconfig-checker](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**GHERKIN**](https://oxsecurity.github.io/megalinter/latest/descriptors/gherkin/) | [gherkin-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/gherkin_gherkin_lint/) | [GHERKIN_GHERKIN_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/gherkin_gherkin_lint/) | [![GitHub stars](https://img.shields.io/github/stars/vsiakka/gherkin-lint?cacheSeconds=3600)](https://github.com/vsiakka/gherkin-lint) | +| | [**KUBERNETES**](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes/) | [kubeval](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi/) | [spectral](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake/) | [snakemake](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**TEKTON**](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton/) | [tekton-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.github.io/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/descriptors/copypaste_jscpd/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://megalinter.github.io/descriptors/credentials/) | [secretlint](https://megalinter.github.io/descriptors/credentials_secretlint/) | [CREDENTIALS_SECRETLINT](https://megalinter.github.io/descriptors/credentials_secretlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://megalinter.github.io/descriptors/spell/) | [misspell](https://megalinter.github.io/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/descriptors/spell_misspell/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://megalinter.github.io/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/descriptors/spell_cspell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste/) | [jscpd](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | | [git_diff](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://oxsecurity.github.io/megalinter/latest/descriptors/spell/) | [misspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [SPELL_CSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/flavors/go.md b/docs/flavors/go.md index 3e62d57cb6f..ffb82d89631 100644 --- a/docs/flavors/go.md +++ b/docs/flavors/go.md @@ -1,7 +1,7 @@ # go MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-go/v5) -![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-go) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-go/v6) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-go) ## Description @@ -9,72 +9,73 @@ Optimized for GO based projects ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/go@v5** -- Docker image: **megalinter/megalinter-go:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor go` +- [GitHub Action](https://oxsecurity.github.io/megalinter/latest/installation/#github-action): **oxsecurity/megalinter/flavors/go@v6** +- Docker image: **oxsecurity/megalinter-go:v6** +- [mega-linter-runner](https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/): `mega-linter-runner --flavor go` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**GO**](https://megalinter.github.io/descriptors/go/) | [golangci-lint](https://megalinter.github.io/descriptors/go_golangci_lint/) | [GO_GOLANGCI_LINT](https://megalinter.github.io/descriptors/go_golangci_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/golangci/golangci-lint)](https://github.com/golangci/golangci-lint/commits) | -| | | [revive](https://megalinter.github.io/descriptors/go_revive/) | [GO_REVIVE](https://megalinter.github.io/descriptors/go_revive/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/mgechev/revive)](https://github.com/mgechev/revive/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**KOTLIN**](https://megalinter.github.io/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/descriptors/kotlin_ktlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**SQL**](https://megalinter.github.io/descriptors/sql/) | [sql-lint](https://megalinter.github.io/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/descriptors/sql_sql_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://megalinter.github.io/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/descriptors/sql_sqlfluff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | +| | Language | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://oxsecurity.github.io/megalinter/latest/descriptors/bash/) | [bash-exec](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | [BASH_EXEC](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [BASH_SHFMT](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**GO**](https://oxsecurity.github.io/megalinter/latest/descriptors/go/) | [golangci-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/go_golangci_lint/) | [GO_GOLANGCI_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/go_golangci_lint/) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) | +| | | [revive](https://oxsecurity.github.io/megalinter/latest/descriptors/go_revive/) | [GO_REVIVE](https://oxsecurity.github.io/megalinter/latest/descriptors/go_revive/) | [![GitHub stars](https://img.shields.io/github/stars/mgechev/revive?cacheSeconds=3600)](https://github.com/mgechev/revive) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**GROOVY**](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy/) | [npm-groovy-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [![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) | +| | [**KOTLIN**](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin/) | [ktlint](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [![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) | +| | [**SQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/sql/) | [sql-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://megalinter.github.io/descriptors/css/) | [stylelint](https://megalinter.github.io/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/descriptors/css_stylelint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://megalinter.github.io/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/descriptors/css_scss_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://megalinter.github.io/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://megalinter.github.io/descriptors/html/) | [htmlhint](https://megalinter.github.io/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/descriptors/html_htmlhint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**MARKDOWN**](https://megalinter.github.io/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/descriptors/markdown_markdownlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://megalinter.github.io/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/descriptors/markdown_remark_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://megalinter.github.io/descriptors/protobuf/) | [protolint](https://megalinter.github.io/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/descriptors/protobuf_protolint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://oxsecurity.github.io/megalinter/latest/descriptors/css/) | [stylelint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [CSS_STYLELINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://oxsecurity.github.io/megalinter/latest/descriptors/env/) | [dotenv-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql/) | [graphql-schema-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://oxsecurity.github.io/megalinter/latest/descriptors/html/) | [htmlhint](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://oxsecurity.github.io/megalinter/latest/descriptors/json/) | [jsonlint](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [JSON_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [JSON_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**MARKDOWN**](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown/) | [markdownlint](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf/) | [protolint](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**XML**](https://oxsecurity.github.io/megalinter/latest/descriptors/xml/) | [xmllint](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | [XML_XMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | | +| | [**YAML**](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml/) | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [YAML_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.github.io/descriptors/action/) | [actionlint](https://megalinter.github.io/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/descriptors/action_actionlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://megalinter.github.io/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://megalinter.github.io/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**KUBERNETES**](https://megalinter.github.io/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://megalinter.github.io/descriptors/openapi/) | [spectral](https://megalinter.github.io/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/descriptors/openapi_spectral/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**SNAKEMAKE**](https://megalinter.github.io/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/descriptors/snakemake_snakemake/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | [SNAKEMAKE_SNAKEFMT](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://megalinter.github.io/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://oxsecurity.github.io/megalinter/latest/descriptors/action/) | [actionlint](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible/) | [ansible-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**DOCKERFILE**](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile/) | [hadolint](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig/) | [editorconfig-checker](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**KUBERNETES**](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes/) | [kubeval](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi/) | [spectral](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake/) | [snakemake](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**TEKTON**](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton/) | [tekton-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.github.io/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/descriptors/copypaste_jscpd/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://megalinter.github.io/descriptors/credentials/) | [secretlint](https://megalinter.github.io/descriptors/credentials_secretlint/) | [CREDENTIALS_SECRETLINT](https://megalinter.github.io/descriptors/credentials_secretlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://megalinter.github.io/descriptors/spell/) | [misspell](https://megalinter.github.io/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/descriptors/spell_misspell/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://megalinter.github.io/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/descriptors/spell_cspell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste/) | [jscpd](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | | [git_diff](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://oxsecurity.github.io/megalinter/latest/descriptors/spell/) | [misspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [SPELL_CSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/flavors/java.md b/docs/flavors/java.md index b891f3fc7ab..68344004bb3 100644 --- a/docs/flavors/java.md +++ b/docs/flavors/java.md @@ -1,7 +1,7 @@ # java MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-java/v5) -![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-java) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-java/v6) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-java) ## Description @@ -9,72 +9,73 @@ Optimized for JAVA based projects ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/java@v5** -- Docker image: **megalinter/megalinter-java:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor java` +- [GitHub Action](https://oxsecurity.github.io/megalinter/latest/installation/#github-action): **oxsecurity/megalinter/flavors/java@v6** +- Docker image: **oxsecurity/megalinter-java:v6** +- [mega-linter-runner](https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/): `mega-linter-runner --flavor java` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**CLOJURE**](https://megalinter.github.io/descriptors/clojure/) | [clj-kondo](https://megalinter.github.io/descriptors/clojure_clj_kondo/) | [CLOJURE_CLJ_KONDO](https://megalinter.github.io/descriptors/clojure_clj_kondo/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/borkdude/clj-kondo)](https://github.com/borkdude/clj-kondo/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**JAVA**](https://megalinter.github.io/descriptors/java/) | [checkstyle](https://megalinter.github.io/descriptors/java_checkstyle/) | [JAVA_CHECKSTYLE](https://megalinter.github.io/descriptors/java_checkstyle/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/checkstyle/checkstyle)](https://github.com/checkstyle/checkstyle/commits) | -| | [**KOTLIN**](https://megalinter.github.io/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/descriptors/kotlin_ktlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**SQL**](https://megalinter.github.io/descriptors/sql/) | [sql-lint](https://megalinter.github.io/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/descriptors/sql_sql_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://megalinter.github.io/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/descriptors/sql_sqlfluff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | +| | Language | Linter | Configuration key | Additional | +|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://oxsecurity.github.io/megalinter/latest/descriptors/bash/) | [bash-exec](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | [BASH_EXEC](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [BASH_SHFMT](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**CLOJURE**](https://oxsecurity.github.io/megalinter/latest/descriptors/clojure/) | [clj-kondo](https://oxsecurity.github.io/megalinter/latest/descriptors/clojure_clj_kondo/) | [CLOJURE_CLJ_KONDO](https://oxsecurity.github.io/megalinter/latest/descriptors/clojure_clj_kondo/) | [![GitHub stars](https://img.shields.io/github/stars/borkdude/clj-kondo?cacheSeconds=3600)](https://github.com/borkdude/clj-kondo) | +| | [**GROOVY**](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy/) | [npm-groovy-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [![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) | +| | [**JAVA**](https://oxsecurity.github.io/megalinter/latest/descriptors/java/) | [checkstyle](https://oxsecurity.github.io/megalinter/latest/descriptors/java_checkstyle/) | [JAVA_CHECKSTYLE](https://oxsecurity.github.io/megalinter/latest/descriptors/java_checkstyle/) | [![GitHub stars](https://img.shields.io/github/stars/checkstyle/checkstyle?cacheSeconds=3600)](https://github.com/checkstyle/checkstyle) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**KOTLIN**](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin/) | [ktlint](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [![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) | +| | [**SQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/sql/) | [sql-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://megalinter.github.io/descriptors/css/) | [stylelint](https://megalinter.github.io/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/descriptors/css_stylelint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://megalinter.github.io/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/descriptors/css_scss_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://megalinter.github.io/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://megalinter.github.io/descriptors/html/) | [htmlhint](https://megalinter.github.io/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/descriptors/html_htmlhint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**MARKDOWN**](https://megalinter.github.io/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/descriptors/markdown_markdownlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://megalinter.github.io/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/descriptors/markdown_remark_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://megalinter.github.io/descriptors/protobuf/) | [protolint](https://megalinter.github.io/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/descriptors/protobuf_protolint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://oxsecurity.github.io/megalinter/latest/descriptors/css/) | [stylelint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [CSS_STYLELINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://oxsecurity.github.io/megalinter/latest/descriptors/env/) | [dotenv-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql/) | [graphql-schema-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://oxsecurity.github.io/megalinter/latest/descriptors/html/) | [htmlhint](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://oxsecurity.github.io/megalinter/latest/descriptors/json/) | [jsonlint](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [JSON_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [JSON_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**MARKDOWN**](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown/) | [markdownlint](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf/) | [protolint](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**XML**](https://oxsecurity.github.io/megalinter/latest/descriptors/xml/) | [xmllint](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | [XML_XMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | | +| | [**YAML**](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml/) | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [YAML_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.github.io/descriptors/action/) | [actionlint](https://megalinter.github.io/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/descriptors/action_actionlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://megalinter.github.io/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://megalinter.github.io/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**KUBERNETES**](https://megalinter.github.io/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://megalinter.github.io/descriptors/openapi/) | [spectral](https://megalinter.github.io/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/descriptors/openapi_spectral/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**SNAKEMAKE**](https://megalinter.github.io/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/descriptors/snakemake_snakemake/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | [SNAKEMAKE_SNAKEFMT](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://megalinter.github.io/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://oxsecurity.github.io/megalinter/latest/descriptors/action/) | [actionlint](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible/) | [ansible-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**DOCKERFILE**](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile/) | [hadolint](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig/) | [editorconfig-checker](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**KUBERNETES**](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes/) | [kubeval](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi/) | [spectral](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake/) | [snakemake](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**TEKTON**](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton/) | [tekton-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.github.io/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/descriptors/copypaste_jscpd/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://megalinter.github.io/descriptors/credentials/) | [secretlint](https://megalinter.github.io/descriptors/credentials_secretlint/) | [CREDENTIALS_SECRETLINT](https://megalinter.github.io/descriptors/credentials_secretlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://megalinter.github.io/descriptors/spell/) | [misspell](https://megalinter.github.io/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/descriptors/spell_misspell/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://megalinter.github.io/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/descriptors/spell_cspell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste/) | [jscpd](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | | [git_diff](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://oxsecurity.github.io/megalinter/latest/descriptors/spell/) | [misspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [SPELL_CSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/flavors/javascript.md b/docs/flavors/javascript.md index eb79b467250..59b5a48d6ba 100644 --- a/docs/flavors/javascript.md +++ b/docs/flavors/javascript.md @@ -1,7 +1,7 @@ # javascript MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-javascript/v5) -![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-javascript) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-javascript/v6) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-javascript) ## Description @@ -9,79 +9,80 @@ Optimized for JAVASCRIPT or TYPESCRIPT based projects ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/javascript@v5** -- Docker image: **megalinter/megalinter-javascript:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor javascript` +- [GitHub Action](https://oxsecurity.github.io/megalinter/latest/installation/#github-action): **oxsecurity/megalinter/flavors/javascript@v6** +- Docker image: **oxsecurity/megalinter-javascript:v6** +- [mega-linter-runner](https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/): `mega-linter-runner --flavor javascript` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**COFFEE**](https://megalinter.github.io/descriptors/coffee/) | [coffeelint](https://megalinter.github.io/descriptors/coffee_coffeelint/) | [COFFEE_COFFEELINT](https://megalinter.github.io/descriptors/coffee_coffeelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/clutchski/coffeelint)](https://github.com/clutchski/coffeelint/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**JAVASCRIPT**](https://megalinter.github.io/descriptors/javascript/) | [eslint](https://megalinter.github.io/descriptors/javascript_eslint/) | [JAVASCRIPT_ES](https://megalinter.github.io/descriptors/javascript_eslint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/eslint/eslint)](https://github.com/eslint/eslint/commits) | -| | | [standard](https://megalinter.github.io/descriptors/javascript_standard/) | [JAVASCRIPT_STANDARD](https://megalinter.github.io/descriptors/javascript_standard/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/standard/standard)](https://github.com/standard/standard/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/javascript_prettier/) | [JAVASCRIPT_PRETTIER](https://megalinter.github.io/descriptors/javascript_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**JSX**](https://megalinter.github.io/descriptors/jsx/) | [eslint](https://megalinter.github.io/descriptors/jsx_eslint/) | [JSX_ESLINT](https://megalinter.github.io/descriptors/jsx_eslint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yannickcr/eslint-plugin-react)](https://github.com/yannickcr/eslint-plugin-react/commits) | -| | [**KOTLIN**](https://megalinter.github.io/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/descriptors/kotlin_ktlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**SQL**](https://megalinter.github.io/descriptors/sql/) | [sql-lint](https://megalinter.github.io/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/descriptors/sql_sql_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://megalinter.github.io/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/descriptors/sql_sqlfluff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | -| | [**TSX**](https://megalinter.github.io/descriptors/tsx/) | [eslint](https://megalinter.github.io/descriptors/tsx_eslint/) | [TSX_ESLINT](https://megalinter.github.io/descriptors/tsx_eslint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yannickcr/eslint-plugin-react)](https://github.com/yannickcr/eslint-plugin-react/commits) | -| | [**TYPESCRIPT**](https://megalinter.github.io/descriptors/typescript/) | [eslint](https://megalinter.github.io/descriptors/typescript_eslint/) | [TYPESCRIPT_ES](https://megalinter.github.io/descriptors/typescript_eslint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/eslint/eslint)](https://github.com/eslint/eslint/commits) | -| | | [standard](https://megalinter.github.io/descriptors/typescript_standard/) | [TYPESCRIPT_STANDARD](https://megalinter.github.io/descriptors/typescript_standard/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/standard/standard)](https://github.com/standard/standard/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/typescript_prettier/) | [TYPESCRIPT_PRETTIER](https://megalinter.github.io/descriptors/typescript_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | +| | Language | Linter | Configuration key | Additional | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://oxsecurity.github.io/megalinter/latest/descriptors/bash/) | [bash-exec](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | [BASH_EXEC](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [BASH_SHFMT](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**COFFEE**](https://oxsecurity.github.io/megalinter/latest/descriptors/coffee/) | [coffeelint](https://oxsecurity.github.io/megalinter/latest/descriptors/coffee_coffeelint/) | [COFFEE_COFFEELINT](https://oxsecurity.github.io/megalinter/latest/descriptors/coffee_coffeelint/) | [![GitHub stars](https://img.shields.io/github/stars/clutchski/coffeelint?cacheSeconds=3600)](https://github.com/clutchski/coffeelint) | +| | [**GROOVY**](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy/) | [npm-groovy-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [![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) | +| | [**JAVASCRIPT**](https://oxsecurity.github.io/megalinter/latest/descriptors/javascript/) | [eslint](https://oxsecurity.github.io/megalinter/latest/descriptors/javascript_eslint/) | [JAVASCRIPT_ES](https://oxsecurity.github.io/megalinter/latest/descriptors/javascript_eslint/) | [![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) | +| | | [standard](https://oxsecurity.github.io/megalinter/latest/descriptors/javascript_standard/) | [JAVASCRIPT_STANDARD](https://oxsecurity.github.io/megalinter/latest/descriptors/javascript_standard/) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/javascript_prettier/) | [JAVASCRIPT_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/javascript_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**JSX**](https://oxsecurity.github.io/megalinter/latest/descriptors/jsx/) | [eslint](https://oxsecurity.github.io/megalinter/latest/descriptors/jsx_eslint/) | [JSX_ESLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/jsx_eslint/) | ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**KOTLIN**](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin/) | [ktlint](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [![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) | +| | [**SQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/sql/) | [sql-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | +| | [**TSX**](https://oxsecurity.github.io/megalinter/latest/descriptors/tsx/) | [eslint](https://oxsecurity.github.io/megalinter/latest/descriptors/tsx_eslint/) | [TSX_ESLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/tsx_eslint/) | ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TYPESCRIPT**](https://oxsecurity.github.io/megalinter/latest/descriptors/typescript/) | [eslint](https://oxsecurity.github.io/megalinter/latest/descriptors/typescript_eslint/) | [TYPESCRIPT_ES](https://oxsecurity.github.io/megalinter/latest/descriptors/typescript_eslint/) | [![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) | +| | | [standard](https://oxsecurity.github.io/megalinter/latest/descriptors/typescript_standard/) | [TYPESCRIPT_STANDARD](https://oxsecurity.github.io/megalinter/latest/descriptors/typescript_standard/) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/typescript_prettier/) | [TYPESCRIPT_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/typescript_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://megalinter.github.io/descriptors/css/) | [stylelint](https://megalinter.github.io/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/descriptors/css_stylelint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://megalinter.github.io/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/descriptors/css_scss_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://megalinter.github.io/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://megalinter.github.io/descriptors/html/) | [htmlhint](https://megalinter.github.io/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/descriptors/html_htmlhint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**MARKDOWN**](https://megalinter.github.io/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/descriptors/markdown_markdownlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://megalinter.github.io/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/descriptors/markdown_remark_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://megalinter.github.io/descriptors/protobuf/) | [protolint](https://megalinter.github.io/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/descriptors/protobuf_protolint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://oxsecurity.github.io/megalinter/latest/descriptors/css/) | [stylelint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [CSS_STYLELINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://oxsecurity.github.io/megalinter/latest/descriptors/env/) | [dotenv-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql/) | [graphql-schema-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://oxsecurity.github.io/megalinter/latest/descriptors/html/) | [htmlhint](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://oxsecurity.github.io/megalinter/latest/descriptors/json/) | [jsonlint](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [JSON_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [JSON_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**MARKDOWN**](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown/) | [markdownlint](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf/) | [protolint](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**XML**](https://oxsecurity.github.io/megalinter/latest/descriptors/xml/) | [xmllint](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | [XML_XMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | | +| | [**YAML**](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml/) | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [YAML_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.github.io/descriptors/action/) | [actionlint](https://megalinter.github.io/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/descriptors/action_actionlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://megalinter.github.io/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://megalinter.github.io/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**KUBERNETES**](https://megalinter.github.io/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://megalinter.github.io/descriptors/openapi/) | [spectral](https://megalinter.github.io/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/descriptors/openapi_spectral/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**SNAKEMAKE**](https://megalinter.github.io/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/descriptors/snakemake_snakemake/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | [SNAKEMAKE_SNAKEFMT](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://megalinter.github.io/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://oxsecurity.github.io/megalinter/latest/descriptors/action/) | [actionlint](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible/) | [ansible-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**DOCKERFILE**](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile/) | [hadolint](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig/) | [editorconfig-checker](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**KUBERNETES**](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes/) | [kubeval](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi/) | [spectral](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake/) | [snakemake](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**TEKTON**](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton/) | [tekton-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.github.io/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/descriptors/copypaste_jscpd/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://megalinter.github.io/descriptors/credentials/) | [secretlint](https://megalinter.github.io/descriptors/credentials_secretlint/) | [CREDENTIALS_SECRETLINT](https://megalinter.github.io/descriptors/credentials_secretlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://megalinter.github.io/descriptors/spell/) | [misspell](https://megalinter.github.io/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/descriptors/spell_misspell/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://megalinter.github.io/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/descriptors/spell_cspell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste/) | [jscpd](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | | [git_diff](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://oxsecurity.github.io/megalinter/latest/descriptors/spell/) | [misspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [SPELL_CSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/flavors/php.md b/docs/flavors/php.md index 17f24e8badf..94d6799ba91 100644 --- a/docs/flavors/php.md +++ b/docs/flavors/php.md @@ -1,7 +1,7 @@ # php MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-php/v5) -![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-php) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-php/v6) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-php) ## Description @@ -9,75 +9,75 @@ Optimized for PHP based projects ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/php@v5** -- Docker image: **megalinter/megalinter-php:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor php` +- [GitHub Action](https://oxsecurity.github.io/megalinter/latest/installation/#github-action): **oxsecurity/megalinter/flavors/php@v6** +- Docker image: **oxsecurity/megalinter-php:v6** +- [mega-linter-runner](https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/): `mega-linter-runner --flavor php` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**KOTLIN**](https://megalinter.github.io/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/descriptors/kotlin_ktlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**PHP**](https://megalinter.github.io/descriptors/php/) | [php](https://megalinter.github.io/descriptors/php_php/) | [PHP_BUILTIN](https://megalinter.github.io/descriptors/php_php/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/php/php-src)](https://github.com/php/php-src/commits) | -| | | [phpcs](https://megalinter.github.io/descriptors/php_phpcs/) | [PHP_PHPCS](https://megalinter.github.io/descriptors/php_phpcs/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/squizlabs/PHP_CodeSniffer)](https://github.com/squizlabs/PHP_CodeSniffer/commits) | -| | | [phpstan](https://megalinter.github.io/descriptors/php_phpstan/) | [PHP_PHPSTAN](https://megalinter.github.io/descriptors/php_phpstan/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/phpstan/phpstan)](https://github.com/phpstan/phpstan/commits) | -| | | [psalm](https://megalinter.github.io/descriptors/php_psalm/) | [PHP_PSALM](https://megalinter.github.io/descriptors/php_psalm/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/vimeo/psalm)](https://github.com/vimeo/psalm/commits) | -| | | [phplint](https://megalinter.github.io/descriptors/php_phplint/) | [PHP_PHPLINT](https://megalinter.github.io/descriptors/php_phplint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/overtrue/phplint)](https://github.com/overtrue/phplint/commits) | -| | [**SQL**](https://megalinter.github.io/descriptors/sql/) | [sql-lint](https://megalinter.github.io/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/descriptors/sql_sql_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://megalinter.github.io/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/descriptors/sql_sqlfluff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | +| | Language | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://oxsecurity.github.io/megalinter/latest/descriptors/bash/) | [bash-exec](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | [BASH_EXEC](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [BASH_SHFMT](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**GROOVY**](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy/) | [npm-groovy-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [![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) | +| | [**KOTLIN**](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin/) | [ktlint](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [![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) | +| | [**PHP**](https://oxsecurity.github.io/megalinter/latest/descriptors/php/) | [phpcs](https://oxsecurity.github.io/megalinter/latest/descriptors/php_phpcs/) | [PHP_PHPCS](https://oxsecurity.github.io/megalinter/latest/descriptors/php_phpcs/) | [![GitHub stars](https://img.shields.io/github/stars/squizlabs/PHP_CodeSniffer?cacheSeconds=3600)](https://github.com/squizlabs/PHP_CodeSniffer) | +| | | [phpstan](https://oxsecurity.github.io/megalinter/latest/descriptors/php_phpstan/) | [PHP_PHPSTAN](https://oxsecurity.github.io/megalinter/latest/descriptors/php_phpstan/) | [![GitHub stars](https://img.shields.io/github/stars/phpstan/phpstan?cacheSeconds=3600)](https://github.com/phpstan/phpstan) | +| | | [psalm](https://oxsecurity.github.io/megalinter/latest/descriptors/php_psalm/) | [PHP_PSALM](https://oxsecurity.github.io/megalinter/latest/descriptors/php_psalm/) | [![GitHub stars](https://img.shields.io/github/stars/vimeo/psalm?cacheSeconds=3600)](https://github.com/vimeo/psalm) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [phplint](https://oxsecurity.github.io/megalinter/latest/descriptors/php_phplint/) | [PHP_PHPLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/php_phplint/) | | +| | [**SQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/sql/) | [sql-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://megalinter.github.io/descriptors/css/) | [stylelint](https://megalinter.github.io/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/descriptors/css_stylelint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://megalinter.github.io/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/descriptors/css_scss_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://megalinter.github.io/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://megalinter.github.io/descriptors/html/) | [htmlhint](https://megalinter.github.io/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/descriptors/html_htmlhint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**MARKDOWN**](https://megalinter.github.io/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/descriptors/markdown_markdownlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://megalinter.github.io/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/descriptors/markdown_remark_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://megalinter.github.io/descriptors/protobuf/) | [protolint](https://megalinter.github.io/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/descriptors/protobuf_protolint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://oxsecurity.github.io/megalinter/latest/descriptors/css/) | [stylelint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [CSS_STYLELINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://oxsecurity.github.io/megalinter/latest/descriptors/env/) | [dotenv-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql/) | [graphql-schema-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://oxsecurity.github.io/megalinter/latest/descriptors/html/) | [htmlhint](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://oxsecurity.github.io/megalinter/latest/descriptors/json/) | [jsonlint](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [JSON_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [JSON_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**MARKDOWN**](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown/) | [markdownlint](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf/) | [protolint](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**XML**](https://oxsecurity.github.io/megalinter/latest/descriptors/xml/) | [xmllint](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | [XML_XMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | | +| | [**YAML**](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml/) | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [YAML_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.github.io/descriptors/action/) | [actionlint](https://megalinter.github.io/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/descriptors/action_actionlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://megalinter.github.io/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://megalinter.github.io/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**KUBERNETES**](https://megalinter.github.io/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://megalinter.github.io/descriptors/openapi/) | [spectral](https://megalinter.github.io/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/descriptors/openapi_spectral/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**SNAKEMAKE**](https://megalinter.github.io/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/descriptors/snakemake_snakemake/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | [SNAKEMAKE_SNAKEFMT](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://megalinter.github.io/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://oxsecurity.github.io/megalinter/latest/descriptors/action/) | [actionlint](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible/) | [ansible-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**DOCKERFILE**](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile/) | [hadolint](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig/) | [editorconfig-checker](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**KUBERNETES**](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes/) | [kubeval](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi/) | [spectral](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake/) | [snakemake](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**TEKTON**](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton/) | [tekton-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.github.io/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/descriptors/copypaste_jscpd/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://megalinter.github.io/descriptors/credentials/) | [secretlint](https://megalinter.github.io/descriptors/credentials_secretlint/) | [CREDENTIALS_SECRETLINT](https://megalinter.github.io/descriptors/credentials_secretlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://megalinter.github.io/descriptors/spell/) | [misspell](https://megalinter.github.io/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/descriptors/spell_misspell/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://megalinter.github.io/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/descriptors/spell_cspell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste/) | [jscpd](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | | [git_diff](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://oxsecurity.github.io/megalinter/latest/descriptors/spell/) | [misspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [SPELL_CSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/flavors/python.md b/docs/flavors/python.md index 8917a3cd62a..8eac6e160cf 100644 --- a/docs/flavors/python.md +++ b/docs/flavors/python.md @@ -1,7 +1,7 @@ # python MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-python/v5) -![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-python) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-python/v6) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-python) ## Description @@ -9,78 +9,79 @@ Optimized for PYTHON based projects ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/python@v5** -- Docker image: **megalinter/megalinter-python:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor python` +- [GitHub Action](https://oxsecurity.github.io/megalinter/latest/installation/#github-action): **oxsecurity/megalinter/flavors/python@v6** +- Docker image: **oxsecurity/megalinter-python:v6** +- [mega-linter-runner](https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/): `mega-linter-runner --flavor python` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**KOTLIN**](https://megalinter.github.io/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/descriptors/kotlin_ktlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**PYTHON**](https://megalinter.github.io/descriptors/python/) | [pylint](https://megalinter.github.io/descriptors/python_pylint/) | [PYTHON_PYLINT](https://megalinter.github.io/descriptors/python_pylint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/pylint)](https://github.com/PyCQA/pylint/commits) | -| | | [black](https://megalinter.github.io/descriptors/python_black/) | [PYTHON_BLACK](https://megalinter.github.io/descriptors/python_black/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/psf/black)](https://github.com/psf/black/commits) | -| | | [flake8](https://megalinter.github.io/descriptors/python_flake8/) | [PYTHON_FLAKE8](https://megalinter.github.io/descriptors/python_flake8/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/flake8)](https://github.com/PyCQA/flake8/commits) | -| | | [isort](https://megalinter.github.io/descriptors/python_isort/) | [PYTHON_ISORT](https://megalinter.github.io/descriptors/python_isort/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/isort)](https://github.com/PyCQA/isort/commits) | -| | | [bandit](https://megalinter.github.io/descriptors/python_bandit/) | [PYTHON_BANDIT](https://megalinter.github.io/descriptors/python_bandit/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/bandit)](https://github.com/PyCQA/bandit/commits) | -| | | [mypy](https://megalinter.github.io/descriptors/python_mypy/) | [PYTHON_MYPY](https://megalinter.github.io/descriptors/python_mypy/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/python/mypy)](https://github.com/python/mypy/commits) | -| | [**SQL**](https://megalinter.github.io/descriptors/sql/) | [sql-lint](https://megalinter.github.io/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/descriptors/sql_sql_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://megalinter.github.io/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/descriptors/sql_sqlfluff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | +| | Language | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://oxsecurity.github.io/megalinter/latest/descriptors/bash/) | [bash-exec](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | [BASH_EXEC](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [BASH_SHFMT](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**GROOVY**](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy/) | [npm-groovy-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [![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) | +| | [**KOTLIN**](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin/) | [ktlint](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [![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) | +| | [**PYTHON**](https://oxsecurity.github.io/megalinter/latest/descriptors/python/) | [pylint](https://oxsecurity.github.io/megalinter/latest/descriptors/python_pylint/) | [PYTHON_PYLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/python_pylint/) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/pylint?cacheSeconds=3600)](https://github.com/PyCQA/pylint) | +| | | [black](https://oxsecurity.github.io/megalinter/latest/descriptors/python_black/) | [PYTHON_BLACK](https://oxsecurity.github.io/megalinter/latest/descriptors/python_black/) | [![GitHub stars](https://img.shields.io/github/stars/psf/black?cacheSeconds=3600)](https://github.com/psf/black) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [flake8](https://oxsecurity.github.io/megalinter/latest/descriptors/python_flake8/) | [PYTHON_FLAKE8](https://oxsecurity.github.io/megalinter/latest/descriptors/python_flake8/) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/flake8?cacheSeconds=3600)](https://github.com/PyCQA/flake8) | +| | | [isort](https://oxsecurity.github.io/megalinter/latest/descriptors/python_isort/) | [PYTHON_ISORT](https://oxsecurity.github.io/megalinter/latest/descriptors/python_isort/) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/isort?cacheSeconds=3600)](https://github.com/PyCQA/isort) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [bandit](https://oxsecurity.github.io/megalinter/latest/descriptors/python_bandit/) | [PYTHON_BANDIT](https://oxsecurity.github.io/megalinter/latest/descriptors/python_bandit/) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/bandit?cacheSeconds=3600)](https://github.com/PyCQA/bandit) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [mypy](https://oxsecurity.github.io/megalinter/latest/descriptors/python_mypy/) | [PYTHON_MYPY](https://oxsecurity.github.io/megalinter/latest/descriptors/python_mypy/) | [![GitHub stars](https://img.shields.io/github/stars/python/mypy?cacheSeconds=3600)](https://github.com/python/mypy) | +| | [**SQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/sql/) | [sql-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://megalinter.github.io/descriptors/css/) | [stylelint](https://megalinter.github.io/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/descriptors/css_stylelint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://megalinter.github.io/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/descriptors/css_scss_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://megalinter.github.io/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://megalinter.github.io/descriptors/html/) | [htmlhint](https://megalinter.github.io/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/descriptors/html_htmlhint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**MARKDOWN**](https://megalinter.github.io/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/descriptors/markdown_markdownlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://megalinter.github.io/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/descriptors/markdown_remark_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://megalinter.github.io/descriptors/protobuf/) | [protolint](https://megalinter.github.io/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/descriptors/protobuf_protolint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**RST**](https://megalinter.github.io/descriptors/rst/) | [rst-lint](https://megalinter.github.io/descriptors/rst_rst_lint/) | [RST_RST_LINT](https://megalinter.github.io/descriptors/rst_rst_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/twolfson/restructuredtext-lint)](https://github.com/twolfson/restructuredtext-lint/commits) | -| | | [rstcheck](https://megalinter.github.io/descriptors/rst_rstcheck/) | [RST_RSTCHECK](https://megalinter.github.io/descriptors/rst_rstcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/myint/rstcheck)](https://github.com/myint/rstcheck/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://oxsecurity.github.io/megalinter/latest/descriptors/css/) | [stylelint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [CSS_STYLELINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://oxsecurity.github.io/megalinter/latest/descriptors/env/) | [dotenv-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql/) | [graphql-schema-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://oxsecurity.github.io/megalinter/latest/descriptors/html/) | [htmlhint](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://oxsecurity.github.io/megalinter/latest/descriptors/json/) | [jsonlint](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [JSON_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [JSON_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**MARKDOWN**](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown/) | [markdownlint](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf/) | [protolint](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**RST**](https://oxsecurity.github.io/megalinter/latest/descriptors/rst/) | [rst-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/rst_rst_lint/) | [RST_RST_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/rst_rst_lint/) | [![GitHub stars](https://img.shields.io/github/stars/twolfson/restructuredtext-lint?cacheSeconds=3600)](https://github.com/twolfson/restructuredtext-lint) | +| | | [rstcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/rst_rstcheck/) | [RST_RSTCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/rst_rstcheck/) | [![GitHub stars](https://img.shields.io/github/stars/myint/rstcheck?cacheSeconds=3600)](https://github.com/myint/rstcheck) | +| | [**XML**](https://oxsecurity.github.io/megalinter/latest/descriptors/xml/) | [xmllint](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | [XML_XMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | | +| | [**YAML**](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml/) | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [YAML_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.github.io/descriptors/action/) | [actionlint](https://megalinter.github.io/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/descriptors/action_actionlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://megalinter.github.io/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://megalinter.github.io/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**KUBERNETES**](https://megalinter.github.io/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://megalinter.github.io/descriptors/openapi/) | [spectral](https://megalinter.github.io/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/descriptors/openapi_spectral/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**SNAKEMAKE**](https://megalinter.github.io/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/descriptors/snakemake_snakemake/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | [SNAKEMAKE_SNAKEFMT](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://megalinter.github.io/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://oxsecurity.github.io/megalinter/latest/descriptors/action/) | [actionlint](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible/) | [ansible-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**DOCKERFILE**](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile/) | [hadolint](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig/) | [editorconfig-checker](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**KUBERNETES**](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes/) | [kubeval](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi/) | [spectral](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake/) | [snakemake](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**TEKTON**](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton/) | [tekton-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.github.io/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/descriptors/copypaste_jscpd/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://megalinter.github.io/descriptors/credentials/) | [secretlint](https://megalinter.github.io/descriptors/credentials_secretlint/) | [CREDENTIALS_SECRETLINT](https://megalinter.github.io/descriptors/credentials_secretlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://megalinter.github.io/descriptors/spell/) | [misspell](https://megalinter.github.io/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/descriptors/spell_misspell/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://megalinter.github.io/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/descriptors/spell_cspell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste/) | [jscpd](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | | [git_diff](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://oxsecurity.github.io/megalinter/latest/descriptors/spell/) | [misspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [SPELL_CSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/flavors/ruby.md b/docs/flavors/ruby.md index d80ea736d34..6471b0f47b6 100644 --- a/docs/flavors/ruby.md +++ b/docs/flavors/ruby.md @@ -1,7 +1,7 @@ # ruby MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-ruby/v5) -![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-ruby) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-ruby/v6) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-ruby) ## Description @@ -9,71 +9,72 @@ Optimized for RUBY based projects ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/ruby@v5** -- Docker image: **megalinter/megalinter-ruby:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor ruby` +- [GitHub Action](https://oxsecurity.github.io/megalinter/latest/installation/#github-action): **oxsecurity/megalinter/flavors/ruby@v6** +- Docker image: **oxsecurity/megalinter-ruby:v6** +- [mega-linter-runner](https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/): `mega-linter-runner --flavor ruby` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**KOTLIN**](https://megalinter.github.io/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/descriptors/kotlin_ktlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**RUBY**](https://megalinter.github.io/descriptors/ruby/) | [rubocop](https://megalinter.github.io/descriptors/ruby_rubocop/) | [RUBY_RUBOCOP](https://megalinter.github.io/descriptors/ruby_rubocop/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/rubocop-hq/rubocop)](https://github.com/rubocop-hq/rubocop/commits) | -| | [**SQL**](https://megalinter.github.io/descriptors/sql/) | [sql-lint](https://megalinter.github.io/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/descriptors/sql_sql_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://megalinter.github.io/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/descriptors/sql_sqlfluff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | +| | Language | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://oxsecurity.github.io/megalinter/latest/descriptors/bash/) | [bash-exec](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | [BASH_EXEC](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [BASH_SHFMT](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**GROOVY**](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy/) | [npm-groovy-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [![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) | +| | [**KOTLIN**](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin/) | [ktlint](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [![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) | +| | [**RUBY**](https://oxsecurity.github.io/megalinter/latest/descriptors/ruby/) | [rubocop](https://oxsecurity.github.io/megalinter/latest/descriptors/ruby_rubocop/) | [RUBY_RUBOCOP](https://oxsecurity.github.io/megalinter/latest/descriptors/ruby_rubocop/) | [![GitHub stars](https://img.shields.io/github/stars/rubocop-hq/rubocop?cacheSeconds=3600)](https://github.com/rubocop-hq/rubocop) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**SQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/sql/) | [sql-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://megalinter.github.io/descriptors/css/) | [stylelint](https://megalinter.github.io/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/descriptors/css_stylelint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://megalinter.github.io/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/descriptors/css_scss_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://megalinter.github.io/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://megalinter.github.io/descriptors/html/) | [htmlhint](https://megalinter.github.io/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/descriptors/html_htmlhint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**MARKDOWN**](https://megalinter.github.io/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/descriptors/markdown_markdownlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://megalinter.github.io/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/descriptors/markdown_remark_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://megalinter.github.io/descriptors/protobuf/) | [protolint](https://megalinter.github.io/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/descriptors/protobuf_protolint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://oxsecurity.github.io/megalinter/latest/descriptors/css/) | [stylelint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [CSS_STYLELINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://oxsecurity.github.io/megalinter/latest/descriptors/env/) | [dotenv-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql/) | [graphql-schema-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://oxsecurity.github.io/megalinter/latest/descriptors/html/) | [htmlhint](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://oxsecurity.github.io/megalinter/latest/descriptors/json/) | [jsonlint](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [JSON_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [JSON_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**MARKDOWN**](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown/) | [markdownlint](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf/) | [protolint](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**XML**](https://oxsecurity.github.io/megalinter/latest/descriptors/xml/) | [xmllint](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | [XML_XMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | | +| | [**YAML**](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml/) | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [YAML_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.github.io/descriptors/action/) | [actionlint](https://megalinter.github.io/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/descriptors/action_actionlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://megalinter.github.io/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://megalinter.github.io/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**KUBERNETES**](https://megalinter.github.io/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://megalinter.github.io/descriptors/openapi/) | [spectral](https://megalinter.github.io/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/descriptors/openapi_spectral/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**SNAKEMAKE**](https://megalinter.github.io/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/descriptors/snakemake_snakemake/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | [SNAKEMAKE_SNAKEFMT](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://megalinter.github.io/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://oxsecurity.github.io/megalinter/latest/descriptors/action/) | [actionlint](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible/) | [ansible-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**DOCKERFILE**](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile/) | [hadolint](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig/) | [editorconfig-checker](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**KUBERNETES**](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes/) | [kubeval](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi/) | [spectral](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake/) | [snakemake](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**TEKTON**](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton/) | [tekton-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.github.io/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/descriptors/copypaste_jscpd/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://megalinter.github.io/descriptors/credentials/) | [secretlint](https://megalinter.github.io/descriptors/credentials_secretlint/) | [CREDENTIALS_SECRETLINT](https://megalinter.github.io/descriptors/credentials_secretlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://megalinter.github.io/descriptors/spell/) | [misspell](https://megalinter.github.io/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/descriptors/spell_misspell/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://megalinter.github.io/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/descriptors/spell_cspell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste/) | [jscpd](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | | [git_diff](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://oxsecurity.github.io/megalinter/latest/descriptors/spell/) | [misspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [SPELL_CSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/flavors/rust.md b/docs/flavors/rust.md index 94d71f2415c..3d2099c7e66 100644 --- a/docs/flavors/rust.md +++ b/docs/flavors/rust.md @@ -1,7 +1,7 @@ # rust MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-rust/v5) -![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-rust) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-rust/v6) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-rust) ## Description @@ -9,71 +9,72 @@ Optimized for RUST based projects ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/rust@v5** -- Docker image: **megalinter/megalinter-rust:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor rust` +- [GitHub Action](https://oxsecurity.github.io/megalinter/latest/installation/#github-action): **oxsecurity/megalinter/flavors/rust@v6** +- Docker image: **oxsecurity/megalinter-rust:v6** +- [mega-linter-runner](https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/): `mega-linter-runner --flavor rust` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**KOTLIN**](https://megalinter.github.io/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/descriptors/kotlin_ktlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**RUST**](https://megalinter.github.io/descriptors/rust/) | [clippy](https://megalinter.github.io/descriptors/rust_clippy/) | [RUST_CLIPPY](https://megalinter.github.io/descriptors/rust_clippy/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rust-lang/rust-clippy)](https://github.com/rust-lang/rust-clippy/commits) | -| | [**SQL**](https://megalinter.github.io/descriptors/sql/) | [sql-lint](https://megalinter.github.io/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/descriptors/sql_sql_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://megalinter.github.io/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/descriptors/sql_sqlfluff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | +| | Language | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://oxsecurity.github.io/megalinter/latest/descriptors/bash/) | [bash-exec](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | [BASH_EXEC](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [BASH_SHFMT](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**GROOVY**](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy/) | [npm-groovy-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [![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) | +| | [**KOTLIN**](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin/) | [ktlint](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [![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) | +| | [**RUST**](https://oxsecurity.github.io/megalinter/latest/descriptors/rust/) | [clippy](https://oxsecurity.github.io/megalinter/latest/descriptors/rust_clippy/) | [RUST_CLIPPY](https://oxsecurity.github.io/megalinter/latest/descriptors/rust_clippy/) | [![GitHub stars](https://img.shields.io/github/stars/rust-lang/rust-clippy?cacheSeconds=3600)](https://github.com/rust-lang/rust-clippy) | +| | [**SQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/sql/) | [sql-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://megalinter.github.io/descriptors/css/) | [stylelint](https://megalinter.github.io/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/descriptors/css_stylelint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://megalinter.github.io/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/descriptors/css_scss_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://megalinter.github.io/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://megalinter.github.io/descriptors/html/) | [htmlhint](https://megalinter.github.io/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/descriptors/html_htmlhint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**MARKDOWN**](https://megalinter.github.io/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/descriptors/markdown_markdownlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://megalinter.github.io/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/descriptors/markdown_remark_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://megalinter.github.io/descriptors/protobuf/) | [protolint](https://megalinter.github.io/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/descriptors/protobuf_protolint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://oxsecurity.github.io/megalinter/latest/descriptors/css/) | [stylelint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [CSS_STYLELINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://oxsecurity.github.io/megalinter/latest/descriptors/env/) | [dotenv-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql/) | [graphql-schema-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://oxsecurity.github.io/megalinter/latest/descriptors/html/) | [htmlhint](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://oxsecurity.github.io/megalinter/latest/descriptors/json/) | [jsonlint](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [JSON_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [JSON_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**MARKDOWN**](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown/) | [markdownlint](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf/) | [protolint](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**XML**](https://oxsecurity.github.io/megalinter/latest/descriptors/xml/) | [xmllint](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | [XML_XMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | | +| | [**YAML**](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml/) | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [YAML_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.github.io/descriptors/action/) | [actionlint](https://megalinter.github.io/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/descriptors/action_actionlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://megalinter.github.io/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://megalinter.github.io/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**KUBERNETES**](https://megalinter.github.io/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://megalinter.github.io/descriptors/openapi/) | [spectral](https://megalinter.github.io/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/descriptors/openapi_spectral/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**SNAKEMAKE**](https://megalinter.github.io/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/descriptors/snakemake_snakemake/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | [SNAKEMAKE_SNAKEFMT](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://megalinter.github.io/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://oxsecurity.github.io/megalinter/latest/descriptors/action/) | [actionlint](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible/) | [ansible-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**DOCKERFILE**](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile/) | [hadolint](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig/) | [editorconfig-checker](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**KUBERNETES**](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes/) | [kubeval](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi/) | [spectral](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake/) | [snakemake](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**TEKTON**](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton/) | [tekton-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.github.io/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/descriptors/copypaste_jscpd/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://megalinter.github.io/descriptors/credentials/) | [secretlint](https://megalinter.github.io/descriptors/credentials_secretlint/) | [CREDENTIALS_SECRETLINT](https://megalinter.github.io/descriptors/credentials_secretlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://megalinter.github.io/descriptors/spell/) | [misspell](https://megalinter.github.io/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/descriptors/spell_misspell/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://megalinter.github.io/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/descriptors/spell_cspell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste/) | [jscpd](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | | [git_diff](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://oxsecurity.github.io/megalinter/latest/descriptors/spell/) | [misspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [SPELL_CSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/flavors/salesforce.md b/docs/flavors/salesforce.md index 08f5f5f6cab..0549f137ca4 100644 --- a/docs/flavors/salesforce.md +++ b/docs/flavors/salesforce.md @@ -1,7 +1,7 @@ # salesforce MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-salesforce/v5) -![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-salesforce) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-salesforce/v6) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-salesforce) ## Description @@ -9,73 +9,74 @@ Optimized for Salesforce based projects ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/salesforce@v5** -- Docker image: **megalinter/megalinter-salesforce:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor salesforce` +- [GitHub Action](https://oxsecurity.github.io/megalinter/latest/installation/#github-action): **oxsecurity/megalinter/flavors/salesforce@v6** +- Docker image: **oxsecurity/megalinter-salesforce:v6** +- [mega-linter-runner](https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/): `mega-linter-runner --flavor salesforce` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**KOTLIN**](https://megalinter.github.io/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/descriptors/kotlin_ktlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**SALESFORCE**](https://megalinter.github.io/descriptors/salesforce/) | [sfdx-scanner-apex](https://megalinter.github.io/descriptors/salesforce_sfdx_scanner_apex/) | [SALESFORCE_SFDX_SCANNER_APEX](https://megalinter.github.io/descriptors/salesforce_sfdx_scanner_apex/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | | [sfdx-scanner-aura](https://megalinter.github.io/descriptors/salesforce_sfdx_scanner_aura/) | [SALESFORCE_SFDX_SCANNER_AURA](https://megalinter.github.io/descriptors/salesforce_sfdx_scanner_aura/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | | [sfdx-scanner-lwc](https://megalinter.github.io/descriptors/salesforce_sfdx_scanner_lwc/) | [SALESFORCE_SFDX_SCANNER_LWC](https://megalinter.github.io/descriptors/salesforce_sfdx_scanner_lwc/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | [**SQL**](https://megalinter.github.io/descriptors/sql/) | [sql-lint](https://megalinter.github.io/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/descriptors/sql_sql_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://megalinter.github.io/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/descriptors/sql_sqlfluff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | +| | Language | Linter | Configuration key | Additional | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://oxsecurity.github.io/megalinter/latest/descriptors/bash/) | [bash-exec](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | [BASH_EXEC](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [BASH_SHFMT](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**GROOVY**](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy/) | [npm-groovy-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [![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) | +| | [**KOTLIN**](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin/) | [ktlint](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [![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) | +| | [**SALESFORCE**](https://oxsecurity.github.io/megalinter/latest/descriptors/salesforce/) | [sfdx-scanner-apex](https://oxsecurity.github.io/megalinter/latest/descriptors/salesforce_sfdx_scanner_apex/) | [SALESFORCE_SFDX_SCANNER_APEX](https://oxsecurity.github.io/megalinter/latest/descriptors/salesforce_sfdx_scanner_apex/) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | | [sfdx-scanner-aura](https://oxsecurity.github.io/megalinter/latest/descriptors/salesforce_sfdx_scanner_aura/) | [SALESFORCE_SFDX_SCANNER_AURA](https://oxsecurity.github.io/megalinter/latest/descriptors/salesforce_sfdx_scanner_aura/) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | | [sfdx-scanner-lwc](https://oxsecurity.github.io/megalinter/latest/descriptors/salesforce_sfdx_scanner_lwc/) | [SALESFORCE_SFDX_SCANNER_LWC](https://oxsecurity.github.io/megalinter/latest/descriptors/salesforce_sfdx_scanner_lwc/) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | [**SQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/sql/) | [sql-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://megalinter.github.io/descriptors/css/) | [stylelint](https://megalinter.github.io/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/descriptors/css_stylelint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://megalinter.github.io/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/descriptors/css_scss_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://megalinter.github.io/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://megalinter.github.io/descriptors/html/) | [htmlhint](https://megalinter.github.io/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/descriptors/html_htmlhint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**MARKDOWN**](https://megalinter.github.io/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/descriptors/markdown_markdownlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://megalinter.github.io/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/descriptors/markdown_remark_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://megalinter.github.io/descriptors/protobuf/) | [protolint](https://megalinter.github.io/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/descriptors/protobuf_protolint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://oxsecurity.github.io/megalinter/latest/descriptors/css/) | [stylelint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [CSS_STYLELINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://oxsecurity.github.io/megalinter/latest/descriptors/env/) | [dotenv-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql/) | [graphql-schema-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://oxsecurity.github.io/megalinter/latest/descriptors/html/) | [htmlhint](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://oxsecurity.github.io/megalinter/latest/descriptors/json/) | [jsonlint](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [JSON_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [JSON_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**MARKDOWN**](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown/) | [markdownlint](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf/) | [protolint](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**XML**](https://oxsecurity.github.io/megalinter/latest/descriptors/xml/) | [xmllint](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | [XML_XMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | | +| | [**YAML**](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml/) | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [YAML_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.github.io/descriptors/action/) | [actionlint](https://megalinter.github.io/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/descriptors/action_actionlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://megalinter.github.io/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://megalinter.github.io/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**KUBERNETES**](https://megalinter.github.io/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://megalinter.github.io/descriptors/openapi/) | [spectral](https://megalinter.github.io/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/descriptors/openapi_spectral/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**SNAKEMAKE**](https://megalinter.github.io/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/descriptors/snakemake_snakemake/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | [SNAKEMAKE_SNAKEFMT](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://megalinter.github.io/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://oxsecurity.github.io/megalinter/latest/descriptors/action/) | [actionlint](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible/) | [ansible-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**DOCKERFILE**](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile/) | [hadolint](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig/) | [editorconfig-checker](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**KUBERNETES**](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes/) | [kubeval](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi/) | [spectral](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake/) | [snakemake](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**TEKTON**](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton/) | [tekton-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.github.io/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/descriptors/copypaste_jscpd/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://megalinter.github.io/descriptors/credentials/) | [secretlint](https://megalinter.github.io/descriptors/credentials_secretlint/) | [CREDENTIALS_SECRETLINT](https://megalinter.github.io/descriptors/credentials_secretlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://megalinter.github.io/descriptors/spell/) | [misspell](https://megalinter.github.io/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/descriptors/spell_misspell/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://megalinter.github.io/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/descriptors/spell_cspell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste/) | [jscpd](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | | [git_diff](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://oxsecurity.github.io/megalinter/latest/descriptors/spell/) | [misspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [SPELL_CSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/flavors/scala.md b/docs/flavors/scala.md index 30ca0350da4..62af5dcc31b 100644 --- a/docs/flavors/scala.md +++ b/docs/flavors/scala.md @@ -1,6 +1,6 @@ # scala MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v5) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-scala/v6-alpha) ![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-scala) ## Description @@ -9,71 +9,73 @@ Optimized for SCALA based projects ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/scala@v5** -- Docker image: **megalinter/megalinter-scala:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor scala` +- [GitHub Action](https://megalinter.github.io/v6-alpha/installation/#github-action): **megalinter/megalinter/flavors/scala@v6-alpha** +- Docker image: **megalinter/megalinter-scala:v6-alpha** +- [mega-linter-runner](https://megalinter.github.io/v6-alpha/mega-linter-runner/): `mega-linter-runner --flavor scala` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**KOTLIN**](https://megalinter.github.io/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/descriptors/kotlin_ktlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**SCALA**](https://megalinter.github.io/descriptors/scala/) | [scalafix](https://megalinter.github.io/descriptors/scala_scalafix/) | [SCALA_SCALAFIX](https://megalinter.github.io/descriptors/scala_scalafix/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/scalacenter/scalafix)](https://github.com/scalacenter/scalafix/commits) | -| | [**SQL**](https://megalinter.github.io/descriptors/sql/) | [sql-lint](https://megalinter.github.io/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/descriptors/sql_sql_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://megalinter.github.io/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/descriptors/sql_sqlfluff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | +| | Language | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://megalinter.github.io/v6-alpha/descriptors/bash/) | [bash-exec](https://megalinter.github.io/v6-alpha/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/v6-alpha/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://megalinter.github.io/v6-alpha/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/v6-alpha/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://megalinter.github.io/v6-alpha/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/v6-alpha/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**GROOVY**](https://megalinter.github.io/v6-alpha/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/v6-alpha/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/v6-alpha/descriptors/groovy_npm_groovy_lint/) | [![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) | +| | [**KOTLIN**](https://megalinter.github.io/v6-alpha/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/v6-alpha/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/v6-alpha/descriptors/kotlin_ktlint/) | [![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) | +| | [**SCALA**](https://megalinter.github.io/v6-alpha/descriptors/scala/) | [scalafix](https://megalinter.github.io/v6-alpha/descriptors/scala_scalafix/) | [SCALA_SCALAFIX](https://megalinter.github.io/v6-alpha/descriptors/scala_scalafix/) | [![GitHub stars](https://img.shields.io/github/stars/scalacenter/scalafix?cacheSeconds=3600)](https://github.com/scalacenter/scalafix) | +| | [**SQL**](https://megalinter.github.io/v6-alpha/descriptors/sql/) | [sql-lint](https://megalinter.github.io/v6-alpha/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/v6-alpha/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://megalinter.github.io/v6-alpha/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/v6-alpha/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://megalinter.github.io/descriptors/css/) | [stylelint](https://megalinter.github.io/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/descriptors/css_stylelint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://megalinter.github.io/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/descriptors/css_scss_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://megalinter.github.io/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://megalinter.github.io/descriptors/html/) | [htmlhint](https://megalinter.github.io/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/descriptors/html_htmlhint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**MARKDOWN**](https://megalinter.github.io/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/descriptors/markdown_markdownlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://megalinter.github.io/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/descriptors/markdown_remark_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://megalinter.github.io/descriptors/protobuf/) | [protolint](https://megalinter.github.io/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/descriptors/protobuf_protolint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-----------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://megalinter.github.io/v6-alpha/descriptors/css/) | [stylelint](https://megalinter.github.io/v6-alpha/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/v6-alpha/descriptors/css_stylelint/) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://megalinter.github.io/v6-alpha/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/v6-alpha/descriptors/css_scss_lint/) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://megalinter.github.io/v6-alpha/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/v6-alpha/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/v6-alpha/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://megalinter.github.io/v6-alpha/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/v6-alpha/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/v6-alpha/descriptors/graphql_graphql_schema_linter/) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://megalinter.github.io/v6-alpha/descriptors/html/) | [htmlhint](https://megalinter.github.io/v6-alpha/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/v6-alpha/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://megalinter.github.io/v6-alpha/descriptors/json/) | [jsonlint](https://megalinter.github.io/v6-alpha/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/v6-alpha/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://megalinter.github.io/v6-alpha/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/v6-alpha/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://megalinter.github.io/v6-alpha/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/v6-alpha/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://megalinter.github.io/v6-alpha/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/v6-alpha/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**MARKDOWN**](https://megalinter.github.io/v6-alpha/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/v6-alpha/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/v6-alpha/descriptors/markdown_markdownlint/) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [remark-lint](https://megalinter.github.io/v6-alpha/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/v6-alpha/descriptors/markdown_remark_lint/) | [![GitHub stars](https://img.shields.io/github/stars/remarkjs/remark-lint?cacheSeconds=3600)](https://github.com/remarkjs/remark-lint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://megalinter.github.io/v6-alpha/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/v6-alpha/descriptors/markdown_markdown_link_check/) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://megalinter.github.io/v6-alpha/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/v6-alpha/descriptors/markdown_markdown_table_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://megalinter.github.io/v6-alpha/descriptors/protobuf/) | [protolint](https://megalinter.github.io/v6-alpha/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/v6-alpha/descriptors/protobuf_protolint/) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**XML**](https://megalinter.github.io/v6-alpha/descriptors/xml/) | [xmllint](https://megalinter.github.io/v6-alpha/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/v6-alpha/descriptors/xml_xmllint/) | | +| | [**YAML**](https://megalinter.github.io/v6-alpha/descriptors/yaml/) | [prettier](https://megalinter.github.io/v6-alpha/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/v6-alpha/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://megalinter.github.io/v6-alpha/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/v6-alpha/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://megalinter.github.io/v6-alpha/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/v6-alpha/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.github.io/descriptors/action/) | [actionlint](https://megalinter.github.io/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/descriptors/action_actionlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://megalinter.github.io/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://megalinter.github.io/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**KUBERNETES**](https://megalinter.github.io/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://megalinter.github.io/descriptors/openapi/) | [spectral](https://megalinter.github.io/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/descriptors/openapi_spectral/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**SNAKEMAKE**](https://megalinter.github.io/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/descriptors/snakemake_snakemake/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | [SNAKEMAKE_SNAKEFMT](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://megalinter.github.io/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://megalinter.github.io/v6-alpha/descriptors/action/) | [actionlint](https://megalinter.github.io/v6-alpha/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/v6-alpha/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://megalinter.github.io/v6-alpha/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/v6-alpha/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/v6-alpha/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**DOCKERFILE**](https://megalinter.github.io/v6-alpha/descriptors/dockerfile/) | [hadolint](https://megalinter.github.io/v6-alpha/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/v6-alpha/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://megalinter.github.io/v6-alpha/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/v6-alpha/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/v6-alpha/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**KUBERNETES**](https://megalinter.github.io/v6-alpha/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/v6-alpha/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/v6-alpha/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://megalinter.github.io/v6-alpha/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/v6-alpha/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://megalinter.github.io/v6-alpha/descriptors/openapi/) | [spectral](https://megalinter.github.io/v6-alpha/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/v6-alpha/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://megalinter.github.io/v6-alpha/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/v6-alpha/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/v6-alpha/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**TEKTON**](https://megalinter.github.io/v6-alpha/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/v6-alpha/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/v6-alpha/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.github.io/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/descriptors/copypaste_jscpd/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://megalinter.github.io/descriptors/credentials/) | [secretlint](https://megalinter.github.io/descriptors/credentials_secretlint/) | [CREDENTIALS_SECRETLINT](https://megalinter.github.io/descriptors/credentials_secretlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://megalinter.github.io/descriptors/spell/) | [misspell](https://megalinter.github.io/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/descriptors/spell_misspell/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://megalinter.github.io/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/descriptors/spell_cspell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|-------------------------------------------------------------------------------|----------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://megalinter.github.io/v6-alpha/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/v6-alpha/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/v6-alpha/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | | [git_diff](https://megalinter.github.io/v6-alpha/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://megalinter.github.io/v6-alpha/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://megalinter.github.io/v6-alpha/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://megalinter.github.io/v6-alpha/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://megalinter.github.io/v6-alpha/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://megalinter.github.io/v6-alpha/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://megalinter.github.io/v6-alpha/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://megalinter.github.io/v6-alpha/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://megalinter.github.io/v6-alpha/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://megalinter.github.io/v6-alpha/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://megalinter.github.io/v6-alpha/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://megalinter.github.io/v6-alpha/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://megalinter.github.io/v6-alpha/descriptors/spell/) | [misspell](https://megalinter.github.io/v6-alpha/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/v6-alpha/descriptors/spell_misspell/) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://megalinter.github.io/v6-alpha/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/v6-alpha/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/flavors/security.md b/docs/flavors/security.md new file mode 100644 index 00000000000..77594770802 --- /dev/null +++ b/docs/flavors/security.md @@ -0,0 +1,57 @@ +# security MegaLinter Flavor + +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-security/v6) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-security) + +## Description + +Optimized for security + +## Usage + +- [GitHub Action](https://oxsecurity.github.io/megalinter/latest/installation/#github-action): **oxsecurity/megalinter/flavors/security@v6** +- Docker image: **oxsecurity/megalinter-security:v6** +- [mega-linter-runner](https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/): `mega-linter-runner --flavor security` + +## Embedded linters + +### Languages + +| | Language | Linter | Configuration key | Additional | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://oxsecurity.github.io/megalinter/latest/descriptors/bash/) | [bash-exec](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | [BASH_EXEC](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [bandit](https://oxsecurity.github.io/megalinter/latest/descriptors/python_bandit/) | [PYTHON_BANDIT](https://oxsecurity.github.io/megalinter/latest/descriptors/python_bandit/) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/bandit?cacheSeconds=3600)](https://github.com/PyCQA/bandit) ![sarif](https://shields.io/badge/-SARIF-orange) | + +### Formats + +| | Format | Linter | Configuration key | Additional | +| :---: | ----------------- | -------------- | ------------ | :-----: | + +### Tooling formats + +| | Tooling format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ANSIBLE**](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible/) | [ansible-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**CLOUDFORMATION**](https://oxsecurity.github.io/megalinter/latest/descriptors/cloudformation/) | [cfn-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/cloudformation_cfn_lint/) | [CLOUDFORMATION_CFN_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/cloudformation_cfn_lint/) | [![GitHub stars](https://img.shields.io/github/stars/aws-cloudformation/cfn-lint?cacheSeconds=3600)](https://github.com/aws-cloudformation/cfn-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile/) | [hadolint](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**KUBERNETES**](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes/) | [kubeval](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**TERRAFORM**](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform/) | [tflint](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_tflint/) | [TERRAFORM_TFLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_tflint/) | [![GitHub stars](https://img.shields.io/github/stars/terraform-linters/tflint?cacheSeconds=3600)](https://github.com/terraform-linters/tflint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [terrascan](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_terrascan/) | [TERRAFORM_TERRASCAN](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_terrascan/) | [![GitHub stars](https://img.shields.io/github/stars/accurics/terrascan?cacheSeconds=3600)](https://github.com/accurics/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [terragrunt](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_terragrunt/) | [TERRAFORM_TERRAGRUNT](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_terragrunt/) | [![GitHub stars](https://img.shields.io/github/stars/gruntwork-io/terragrunt?cacheSeconds=3600)](https://github.com/gruntwork-io/terragrunt) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [checkov](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_checkov/) | [TERRAFORM_CHECKOV](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_checkov/) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [kics](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_kics/) | [TERRAFORM_KICS](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_kics/) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) | + +### Other + +| | Code quality checker | Linter | Configuration key | Additional | +|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**REPOSITORY**](https://oxsecurity.github.io/megalinter/latest/descriptors/repository/) | [devskim](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_devskim/) | [REPOSITORY_DEVSKIM](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_devskim/) | [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [dustilock](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_dustilock/) | [REPOSITORY_DUSTILOCK](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_dustilock/) | [![GitHub stars](https://img.shields.io/github/stars/Checkmarx/dustilock?cacheSeconds=3600)](https://github.com/Checkmarx/dustilock) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [gitleaks](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [secretlint](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [syft](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_syft/) | [REPOSITORY_SYFT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_syft/) | [![GitHub stars](https://img.shields.io/github/stars/anchore/syft?cacheSeconds=3600)](https://github.com/anchore/syft) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | + diff --git a/docs/flavors/swift.md b/docs/flavors/swift.md index 14a3765003a..bbf31b81c39 100644 --- a/docs/flavors/swift.md +++ b/docs/flavors/swift.md @@ -1,7 +1,7 @@ # swift MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-swift/v5) -![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-swift) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-swift/v6) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-swift) ## Description @@ -9,71 +9,72 @@ Optimized for SWIFT based projects ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/swift@v5** -- Docker image: **megalinter/megalinter-swift:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor swift` +- [GitHub Action](https://oxsecurity.github.io/megalinter/latest/installation/#github-action): **oxsecurity/megalinter/flavors/swift@v6** +- Docker image: **oxsecurity/megalinter-swift:v6** +- [mega-linter-runner](https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/): `mega-linter-runner --flavor swift` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**KOTLIN**](https://megalinter.github.io/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/descriptors/kotlin_ktlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**SQL**](https://megalinter.github.io/descriptors/sql/) | [sql-lint](https://megalinter.github.io/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/descriptors/sql_sql_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://megalinter.github.io/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/descriptors/sql_sqlfluff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | -| | [**SWIFT**](https://megalinter.github.io/descriptors/swift/) | [swiftlint](https://megalinter.github.io/descriptors/swift_swiftlint/) | [SWIFT_SWIFTLINT](https://megalinter.github.io/descriptors/swift_swiftlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/realm/SwiftLint)](https://github.com/realm/SwiftLint/commits) | +| | Language | Linter | Configuration key | Additional | +|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://oxsecurity.github.io/megalinter/latest/descriptors/bash/) | [bash-exec](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | [BASH_EXEC](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [BASH_SHFMT](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**GROOVY**](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy/) | [npm-groovy-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [![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) | +| | [**KOTLIN**](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin/) | [ktlint](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [![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) | +| | [**SQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/sql/) | [sql-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | +| | [**SWIFT**](https://oxsecurity.github.io/megalinter/latest/descriptors/swift/) | [swiftlint](https://oxsecurity.github.io/megalinter/latest/descriptors/swift_swiftlint/) | [SWIFT_SWIFTLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/swift_swiftlint/) | [![GitHub stars](https://img.shields.io/github/stars/realm/SwiftLint?cacheSeconds=3600)](https://github.com/realm/SwiftLint) ![autofix](https://shields.io/badge/-autofix-green) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://megalinter.github.io/descriptors/css/) | [stylelint](https://megalinter.github.io/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/descriptors/css_stylelint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://megalinter.github.io/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/descriptors/css_scss_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://megalinter.github.io/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://megalinter.github.io/descriptors/html/) | [htmlhint](https://megalinter.github.io/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/descriptors/html_htmlhint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**MARKDOWN**](https://megalinter.github.io/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/descriptors/markdown_markdownlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://megalinter.github.io/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/descriptors/markdown_remark_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://megalinter.github.io/descriptors/protobuf/) | [protolint](https://megalinter.github.io/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/descriptors/protobuf_protolint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://oxsecurity.github.io/megalinter/latest/descriptors/css/) | [stylelint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [CSS_STYLELINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://oxsecurity.github.io/megalinter/latest/descriptors/env/) | [dotenv-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql/) | [graphql-schema-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://oxsecurity.github.io/megalinter/latest/descriptors/html/) | [htmlhint](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://oxsecurity.github.io/megalinter/latest/descriptors/json/) | [jsonlint](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [JSON_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [JSON_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**MARKDOWN**](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown/) | [markdownlint](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf/) | [protolint](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**XML**](https://oxsecurity.github.io/megalinter/latest/descriptors/xml/) | [xmllint](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | [XML_XMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | | +| | [**YAML**](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml/) | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [YAML_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.github.io/descriptors/action/) | [actionlint](https://megalinter.github.io/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/descriptors/action_actionlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://megalinter.github.io/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://megalinter.github.io/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**KUBERNETES**](https://megalinter.github.io/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://megalinter.github.io/descriptors/openapi/) | [spectral](https://megalinter.github.io/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/descriptors/openapi_spectral/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**SNAKEMAKE**](https://megalinter.github.io/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/descriptors/snakemake_snakemake/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | [SNAKEMAKE_SNAKEFMT](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://megalinter.github.io/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://oxsecurity.github.io/megalinter/latest/descriptors/action/) | [actionlint](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible/) | [ansible-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**DOCKERFILE**](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile/) | [hadolint](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig/) | [editorconfig-checker](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**KUBERNETES**](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes/) | [kubeval](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi/) | [spectral](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake/) | [snakemake](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**TEKTON**](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton/) | [tekton-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.github.io/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/descriptors/copypaste_jscpd/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://megalinter.github.io/descriptors/credentials/) | [secretlint](https://megalinter.github.io/descriptors/credentials_secretlint/) | [CREDENTIALS_SECRETLINT](https://megalinter.github.io/descriptors/credentials_secretlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://megalinter.github.io/descriptors/spell/) | [misspell](https://megalinter.github.io/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/descriptors/spell_misspell/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://megalinter.github.io/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/descriptors/spell_cspell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste/) | [jscpd](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | | [git_diff](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://oxsecurity.github.io/megalinter/latest/descriptors/spell/) | [misspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [SPELL_CSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/flavors/terraform.md b/docs/flavors/terraform.md index 964bf26d047..89193946f20 100644 --- a/docs/flavors/terraform.md +++ b/docs/flavors/terraform.md @@ -1,7 +1,7 @@ # terraform MegaLinter Flavor -![Docker Image Size (tag)](https://img.shields.io/docker/image-size/megalinter/megalinter-terraform/v5) -![Docker Pulls](https://img.shields.io/docker/pulls/megalinter/megalinter-terraform) +![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-terraform/v6) +![Docker Pulls](https://img.shields.io/docker/pulls/oxsecurity/megalinter-terraform) ## Description @@ -9,76 +9,77 @@ Optimized for TERRAFORM based projects ## Usage -- [GitHub Action](https://megalinter.github.io/installation/#github-action): **megalinter/megalinter/flavors/terraform@v5** -- Docker image: **megalinter/megalinter-terraform:v5** -- [mega-linter-runner](https://megalinter.github.io/mega-linter-runner/): `mega-linter-runner --flavor terraform` +- [GitHub Action](https://oxsecurity.github.io/megalinter/latest/installation/#github-action): **oxsecurity/megalinter/flavors/terraform@v6** +- Docker image: **oxsecurity/megalinter-terraform:v6** +- [mega-linter-runner](https://oxsecurity.github.io/megalinter/latest/mega-linter-runner/): `mega-linter-runner --flavor terraform` ## Embedded linters ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------|-------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://megalinter.github.io/descriptors/bash/) | [bash-exec](https://megalinter.github.io/descriptors/bash_bash_exec/) | [BASH_EXEC](https://megalinter.github.io/descriptors/bash_bash_exec/) | | | -| | | [shellcheck](https://megalinter.github.io/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://megalinter.github.io/descriptors/bash_shellcheck/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://megalinter.github.io/descriptors/bash_shfmt/) | [BASH_SHFMT](https://megalinter.github.io/descriptors/bash_shfmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**GROOVY**](https://megalinter.github.io/descriptors/groovy/) | [npm-groovy-lint](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://megalinter.github.io/descriptors/groovy_npm_groovy_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**KOTLIN**](https://megalinter.github.io/descriptors/kotlin/) | [ktlint](https://megalinter.github.io/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://megalinter.github.io/descriptors/kotlin_ktlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**SQL**](https://megalinter.github.io/descriptors/sql/) | [sql-lint](https://megalinter.github.io/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://megalinter.github.io/descriptors/sql_sql_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://megalinter.github.io/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://megalinter.github.io/descriptors/sql_sqlfluff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | +| | Language | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://oxsecurity.github.io/megalinter/latest/descriptors/bash/) | [bash-exec](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | [BASH_EXEC](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_bash_exec/) | | +| | | [shellcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [BASH_SHELLCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shellcheck/) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [BASH_SHFMT](https://oxsecurity.github.io/megalinter/latest/descriptors/bash_shfmt/) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**GROOVY**](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy/) | [npm-groovy-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [GROOVY_NPM_GROOVY_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/groovy_npm_groovy_lint/) | [![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) | +| | [**KOTLIN**](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin/) | [ktlint](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [KOTLIN_KTLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/kotlin_ktlint/) | [![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) | +| | [**SQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/sql/) | [sql-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [SQL_SQL_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sql_lint/) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [SQL_SQLFLUFF](https://oxsecurity.github.io/megalinter/latest/descriptors/sql_sqlfluff/) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://megalinter.github.io/descriptors/css/) | [stylelint](https://megalinter.github.io/descriptors/css_stylelint/) | [CSS_STYLELINT](https://megalinter.github.io/descriptors/css_stylelint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://megalinter.github.io/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://megalinter.github.io/descriptors/css_scss_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://megalinter.github.io/descriptors/env/) | [dotenv-linter](https://megalinter.github.io/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://megalinter.github.io/descriptors/env_dotenv_linter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://megalinter.github.io/descriptors/graphql/) | [graphql-schema-linter](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://megalinter.github.io/descriptors/graphql_graphql_schema_linter/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://megalinter.github.io/descriptors/html/) | [htmlhint](https://megalinter.github.io/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://megalinter.github.io/descriptors/html_htmlhint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://megalinter.github.io/descriptors/json/) | [jsonlint](https://megalinter.github.io/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://megalinter.github.io/descriptors/json_jsonlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://megalinter.github.io/descriptors/json_eslint_plugin_jsonc/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/json_v8r/) | [JSON_V8R](https://megalinter.github.io/descriptors/json_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://megalinter.github.io/descriptors/json_prettier/) | [JSON_PRETTIER](https://megalinter.github.io/descriptors/json_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**MARKDOWN**](https://megalinter.github.io/descriptors/markdown/) | [markdownlint](https://megalinter.github.io/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://megalinter.github.io/descriptors/markdown_markdownlint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://megalinter.github.io/descriptors/markdown_remark_lint/) | [MARKDOWN_REMARK_LINT](https://megalinter.github.io/descriptors/markdown_remark_lint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://megalinter.github.io/descriptors/markdown_markdown_link_check/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://megalinter.github.io/descriptors/markdown_markdown_table_formatter/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://megalinter.github.io/descriptors/protobuf/) | [protolint](https://megalinter.github.io/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://megalinter.github.io/descriptors/protobuf_protolint/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**XML**](https://megalinter.github.io/descriptors/xml/) | [xmllint](https://megalinter.github.io/descriptors/xml_xmllint/) | [XML_XMLLINT](https://megalinter.github.io/descriptors/xml_xmllint/) | | | -| | [**YAML**](https://megalinter.github.io/descriptors/yaml/) | [prettier](https://megalinter.github.io/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://megalinter.github.io/descriptors/yaml_prettier/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://megalinter.github.io/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://megalinter.github.io/descriptors/yaml_yamllint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://megalinter.github.io/descriptors/yaml_v8r/) | [YAML_V8R](https://megalinter.github.io/descriptors/yaml_v8r/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://oxsecurity.github.io/megalinter/latest/descriptors/css/) | [stylelint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [CSS_STYLELINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_stylelint/) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [CSS_SCSS_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/css_scss_lint/) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://oxsecurity.github.io/megalinter/latest/descriptors/env/) | [dotenv-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [ENV_DOTENV_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/env_dotenv_linter/) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql/) | [graphql-schema-linter](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://oxsecurity.github.io/megalinter/latest/descriptors/graphql_graphql_schema_linter/) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://oxsecurity.github.io/megalinter/latest/descriptors/html/) | [htmlhint](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [HTML_HTMLHINT](https://oxsecurity.github.io/megalinter/latest/descriptors/html_htmlhint/) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://oxsecurity.github.io/megalinter/latest/descriptors/json/) | [jsonlint](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [JSON_JSONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/json_jsonlint/) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [JSON_ESLINT_PLUGIN_JSONC](https://oxsecurity.github.io/megalinter/latest/descriptors/json_eslint_plugin_jsonc/) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [JSON_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/json_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [JSON_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/json_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**MARKDOWN**](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown/) | [markdownlint](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [MARKDOWN_MARKDOWNLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdownlint/) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_link_check/) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://oxsecurity.github.io/megalinter/latest/descriptors/markdown_markdown_table_formatter/) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf/) | [protolint](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [PROTOBUF_PROTOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/protobuf_protolint/) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**XML**](https://oxsecurity.github.io/megalinter/latest/descriptors/xml/) | [xmllint](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | [XML_XMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/xml_xmllint/) | | +| | [**YAML**](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml/) | [prettier](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [YAML_PRETTIER](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_prettier/) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [YAML_YAMLLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_yamllint/) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [YAML_V8R](https://oxsecurity.github.io/megalinter/latest/descriptors/yaml_v8r/) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://megalinter.github.io/descriptors/action/) | [actionlint](https://megalinter.github.io/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://megalinter.github.io/descriptors/action_actionlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://megalinter.github.io/descriptors/ansible/) | [ansible-lint](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://megalinter.github.io/descriptors/ansible_ansible_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**DOCKERFILE**](https://megalinter.github.io/descriptors/dockerfile/) | [dockerfilelint](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | [DOCKERFILE_DOCKERFILELINT](https://megalinter.github.io/descriptors/dockerfile_dockerfilelint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://megalinter.github.io/descriptors/dockerfile_hadolint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://megalinter.github.io/descriptors/editorconfig/) | [editorconfig-checker](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://megalinter.github.io/descriptors/editorconfig_editorconfig_checker/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**KUBERNETES**](https://megalinter.github.io/descriptors/kubernetes/) | [kubeval](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://megalinter.github.io/descriptors/kubernetes_kubeval/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://megalinter.github.io/descriptors/kubernetes_kubeconform/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://megalinter.github.io/descriptors/openapi/) | [spectral](https://megalinter.github.io/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://megalinter.github.io/descriptors/openapi_spectral/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**SNAKEMAKE**](https://megalinter.github.io/descriptors/snakemake/) | [snakemake](https://megalinter.github.io/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://megalinter.github.io/descriptors/snakemake_snakemake/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | [SNAKEMAKE_SNAKEFMT](https://megalinter.github.io/descriptors/snakemake_snakefmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://megalinter.github.io/descriptors/tekton/) | [tekton-lint](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://megalinter.github.io/descriptors/tekton_tekton_lint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | -| | [**TERRAFORM**](https://megalinter.github.io/descriptors/terraform/) | [tflint](https://megalinter.github.io/descriptors/terraform_tflint/) | [TERRAFORM_TFLINT](https://megalinter.github.io/descriptors/terraform_tflint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/terraform-linters/tflint)](https://github.com/terraform-linters/tflint/commits) | -| | | [terrascan](https://megalinter.github.io/descriptors/terraform_terrascan/) | [TERRAFORM_TERRASCAN](https://megalinter.github.io/descriptors/terraform_terrascan/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/accurics/terrascan)](https://github.com/accurics/terrascan/commits) | -| | | [terragrunt](https://megalinter.github.io/descriptors/terraform_terragrunt/) | [TERRAFORM_TERRAGRUNT](https://megalinter.github.io/descriptors/terraform_terragrunt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/gruntwork-io/terragrunt)](https://github.com/gruntwork-io/terragrunt/commits) | -| | | [terraform-fmt](https://megalinter.github.io/descriptors/terraform_terraform_fmt/) | [TERRAFORM_TERRAFORM_FMT](https://megalinter.github.io/descriptors/terraform_terraform_fmt/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/hashicorp/terraform)](https://github.com/hashicorp/terraform/commits) | -| | | [checkov](https://megalinter.github.io/descriptors/terraform_checkov/) | [TERRAFORM_CHECKOV](https://megalinter.github.io/descriptors/terraform_checkov/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/bridgecrewio/checkov)](https://github.com/bridgecrewio/checkov/commits) | -| | | [kics](https://megalinter.github.io/descriptors/terraform_kics/) | [TERRAFORM_KICS](https://megalinter.github.io/descriptors/terraform_kics/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/checkmarx/kics)](https://github.com/checkmarx/kics/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://oxsecurity.github.io/megalinter/latest/descriptors/action/) | [actionlint](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [ACTION_ACTIONLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/action_actionlint/) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible/) | [ansible-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [ANSIBLE_ANSIBLE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/ansible_ansible_lint/) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**DOCKERFILE**](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile/) | [hadolint](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [DOCKERFILE_HADOLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/dockerfile_hadolint/) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig/) | [editorconfig-checker](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://oxsecurity.github.io/megalinter/latest/descriptors/editorconfig_editorconfig_checker/) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**KUBERNETES**](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes/) | [kubeval](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [KUBERNETES_KUBEVAL](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeval/) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [KUBERNETES_KUBECONFORM](https://oxsecurity.github.io/megalinter/latest/descriptors/kubernetes_kubeconform/) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi/) | [spectral](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [OPENAPI_SPECTRAL](https://oxsecurity.github.io/megalinter/latest/descriptors/openapi_spectral/) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**SNAKEMAKE**](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake/) | [snakemake](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [SNAKEMAKE_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/snakemake_snakemake/) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | [**TEKTON**](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton/) | [tekton-lint](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [TEKTON_TEKTON_LINT](https://oxsecurity.github.io/megalinter/latest/descriptors/tekton_tekton_lint/) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | [**TERRAFORM**](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform/) | [tflint](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_tflint/) | [TERRAFORM_TFLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_tflint/) | [![GitHub stars](https://img.shields.io/github/stars/terraform-linters/tflint?cacheSeconds=3600)](https://github.com/terraform-linters/tflint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [terrascan](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_terrascan/) | [TERRAFORM_TERRASCAN](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_terrascan/) | [![GitHub stars](https://img.shields.io/github/stars/accurics/terrascan?cacheSeconds=3600)](https://github.com/accurics/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [terragrunt](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_terragrunt/) | [TERRAFORM_TERRAGRUNT](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_terragrunt/) | [![GitHub stars](https://img.shields.io/github/stars/gruntwork-io/terragrunt?cacheSeconds=3600)](https://github.com/gruntwork-io/terragrunt) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [terraform-fmt](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_terraform_fmt/) | [TERRAFORM_TERRAFORM_FMT](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_terraform_fmt/) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [checkov](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_checkov/) | [TERRAFORM_CHECKOV](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_checkov/) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [kics](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_kics/) | [TERRAFORM_KICS](https://oxsecurity.github.io/megalinter/latest/descriptors/terraform_kics/) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------|--------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://megalinter.github.io/descriptors/copypaste/) | [jscpd](https://megalinter.github.io/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://megalinter.github.io/descriptors/copypaste_jscpd/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://megalinter.github.io/descriptors/credentials/) | [secretlint](https://megalinter.github.io/descriptors/credentials_secretlint/) | [CREDENTIALS_SECRETLINT](https://megalinter.github.io/descriptors/credentials_secretlint/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://megalinter.github.io/descriptors/git/) | [git_diff](https://megalinter.github.io/descriptors/git_git_diff/) | [GIT_GIT_DIFF](https://megalinter.github.io/descriptors/git_git_diff/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://megalinter.github.io/descriptors/spell/) | [misspell](https://megalinter.github.io/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://megalinter.github.io/descriptors/spell_misspell/) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://megalinter.github.io/descriptors/spell_cspell/) | [SPELL_CSPELL](https://megalinter.github.io/descriptors/spell_cspell/) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste/) | [jscpd](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [COPYPASTE_JSCPD](https://oxsecurity.github.io/megalinter/latest/descriptors/copypaste_jscpd/) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | | [git_diff](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [REPOSITORY_GIT_DIFF](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_git_diff/) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [REPOSITORY_GITLEAKS](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_gitleaks/) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [REPOSITORY_GOODCHECK](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_goodcheck/) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [REPOSITORY_SECRETLINT](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_secretlint/) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [REPOSITORY_SEMGREP](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_semgrep/) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [REPOSITORY_TRIVY](https://oxsecurity.github.io/megalinter/latest/descriptors/repository_trivy/) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://oxsecurity.github.io/megalinter/latest/descriptors/spell/) | [misspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [SPELL_MISSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_misspell/) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [SPELL_CSPELL](https://oxsecurity.github.io/megalinter/latest/descriptors/spell_cspell/) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/index.md b/docs/index.md index a8900ca24b4..ae744930f71 100644 --- a/docs/index.md +++ b/docs/index.md @@ -27,7 +27,7 @@ MegaLinter is an **Open-Source** tool for **CI/CD workflows** that analyzes the **consistency of your code**, **IAC**, **configuration**, and **scripts** in your repository sources, to **ensure all your projects sources are clean and formatted** whatever IDE/toolbox is used by their developers, powered by [**OX security**](https://www.ox.security/). -Supporting [**49** languages](supported-linters.md#languages), [**22** formats](supported-linters.md#formats), [**21** tooling formats](supported-linters.md#tooling-formats) and **ready to use out of the box**, as a GitHub action or any CI system **highly configurable** and **free for all uses**. +Supporting [**48** languages](supported-linters.md#languages), [**21** formats](supported-linters.md#formats), [**20** tooling formats](supported-linters.md#tooling-formats) and **ready to use out of the box**, as a GitHub action or any CI system **highly configurable** and **free for all uses**. @@ -77,7 +77,7 @@ By using **MegaLinter**, you'll enjoy the following benefits for you and your te - Reading error logs, **developers learn best practices** of the language they are using - [**MegaLinter documentation**](https://megalinter.github.io/) provides the **list of IDE plugins integrating each linter**, so developers know which linter and plugins to install - MegaLinter is **ready out of the box** after a [**quick setup**](quick-start.md) -- **Formatting and fixes** can be automatically [**applied on the git branch**](configuration.md#apply-fixes) or [**provided in reports**](reporters/UpdatedSourcesReporter.md) +- **Formatting and fixes** can be automatically [**applied on the git branch**](configuration.md#apply-fixes) or [**provided in reports**](https://github.com/megalinter/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**](installation.md) and be [**run locally**](https://megalinter.github.io/mega-linter-runner/): **no need to authorize an external application**, and **your code base never leaves your tooling ecosystem** @@ -94,120 +94,124 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|-------------------------------------------------------------------------|------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](descriptors/bash.md#readme) | [bash-exec](descriptors/bash_bash_exec.md#readme) | [BASH_EXEC](descriptors/bash_bash_exec.md#readme) | | | -| | | [shellcheck](descriptors/bash_shellcheck.md#readme) | [BASH_SHELLCHECK](descriptors/bash_shellcheck.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](descriptors/bash_shfmt.md#readme) | [BASH_SHFMT](descriptors/bash_shfmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**C**](descriptors/c.md#readme) | [cpplint](descriptors/c_cpplint.md#readme) | [C_CPPLINT](descriptors/c_cpplint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cpplint/cpplint)](https://github.com/cpplint/cpplint/commits) | -| | [**CLOJURE**](descriptors/clojure.md#readme) | [clj-kondo](descriptors/clojure_clj_kondo.md#readme) | [CLOJURE_CLJ_KONDO](descriptors/clojure_clj_kondo.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/borkdude/clj-kondo)](https://github.com/borkdude/clj-kondo/commits) | -| | [**COFFEE**](descriptors/coffee.md#readme) | [coffeelint](descriptors/coffee_coffeelint.md#readme) | [COFFEE_COFFEELINT](descriptors/coffee_coffeelint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/clutchski/coffeelint)](https://github.com/clutchski/coffeelint/commits) | -| | [**C++** (CPP)](descriptors/cpp.md#readme) | [cpplint](descriptors/cpp_cpplint.md#readme) | [CPP_CPPLINT](descriptors/cpp_cpplint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cpplint/cpplint)](https://github.com/cpplint/cpplint/commits) | -| | [**C#** (CSHARP)](descriptors/csharp.md#readme) | [dotnet-format](descriptors/csharp_dotnet_format.md#readme) | [CSHARP_DOTNET_FORMAT](descriptors/csharp_dotnet_format.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotnet/format)](https://github.com/dotnet/format/commits) | -| | [**DART**](descriptors/dart.md#readme) | [dartanalyzer](descriptors/dart_dartanalyzer.md#readme) | [DART_DARTANALYZER](descriptors/dart_dartanalyzer.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/dart-lang/sdk)](https://github.com/dart-lang/sdk/commits) | -| | [**GO**](descriptors/go.md#readme) | [golangci-lint](descriptors/go_golangci_lint.md#readme) | [GO_GOLANGCI_LINT](descriptors/go_golangci_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/golangci/golangci-lint)](https://github.com/golangci/golangci-lint/commits) | -| | | [revive](descriptors/go_revive.md#readme) | [GO_REVIVE](descriptors/go_revive.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/mgechev/revive)](https://github.com/mgechev/revive/commits) | -| | [**GROOVY**](descriptors/groovy.md#readme) | [npm-groovy-lint](descriptors/groovy_npm_groovy_lint.md#readme) | [GROOVY_NPM_GROOVY_LINT](descriptors/groovy_npm_groovy_lint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**JAVA**](descriptors/java.md#readme) | [checkstyle](descriptors/java_checkstyle.md#readme) | [JAVA_CHECKSTYLE](descriptors/java_checkstyle.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/checkstyle/checkstyle)](https://github.com/checkstyle/checkstyle/commits) | -| | [**JAVASCRIPT**](descriptors/javascript.md#readme) | [eslint](descriptors/javascript_eslint.md#readme) | [JAVASCRIPT_ES](descriptors/javascript_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/eslint/eslint)](https://github.com/eslint/eslint/commits) | -| | | [standard](descriptors/javascript_standard.md#readme) | [JAVASCRIPT_STANDARD](descriptors/javascript_standard.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/standard/standard)](https://github.com/standard/standard/commits) | -| | | [prettier](descriptors/javascript_prettier.md#readme) | [JAVASCRIPT_PRETTIER](descriptors/javascript_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**JSX**](descriptors/jsx.md#readme) | [eslint](descriptors/jsx_eslint.md#readme) | [JSX_ESLINT](descriptors/jsx_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yannickcr/eslint-plugin-react)](https://github.com/yannickcr/eslint-plugin-react/commits) | -| | [**KOTLIN**](descriptors/kotlin.md#readme) | [ktlint](descriptors/kotlin_ktlint.md#readme) | [KOTLIN_KTLINT](descriptors/kotlin_ktlint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**LUA**](descriptors/lua.md#readme) | [luacheck](descriptors/lua_luacheck.md#readme) | [LUA_LUACHECK](descriptors/lua_luacheck.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/luarocks/luacheck)](https://github.com/luarocks/luacheck/commits) | -| | [**PERL**](descriptors/perl.md#readme) | [perlcritic](descriptors/perl_perlcritic.md#readme) | [PERL_PERLCRITIC](descriptors/perl_perlcritic.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/Perl-Critic/Perl-Critic)](https://github.com/Perl-Critic/Perl-Critic/commits) | -| | [**PHP**](descriptors/php.md#readme) | [php](descriptors/php_php.md#readme) | [PHP_BUILTIN](descriptors/php_php.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/php/php-src)](https://github.com/php/php-src/commits) | -| | | [phpcs](descriptors/php_phpcs.md#readme) | [PHP_PHPCS](descriptors/php_phpcs.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/squizlabs/PHP_CodeSniffer)](https://github.com/squizlabs/PHP_CodeSniffer/commits) | -| | | [phpstan](descriptors/php_phpstan.md#readme) | [PHP_PHPSTAN](descriptors/php_phpstan.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/phpstan/phpstan)](https://github.com/phpstan/phpstan/commits) | -| | | [psalm](descriptors/php_psalm.md#readme) | [PHP_PSALM](descriptors/php_psalm.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/vimeo/psalm)](https://github.com/vimeo/psalm/commits) | -| | | [phplint](descriptors/php_phplint.md#readme) | [PHP_PHPLINT](descriptors/php_phplint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/overtrue/phplint)](https://github.com/overtrue/phplint/commits) | -| | [**POWERSHELL**](descriptors/powershell.md#readme) | [powershell](descriptors/powershell_powershell.md#readme) | [POWERSHELL_POWERSHELL](descriptors/powershell_powershell.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PowerShell/PSScriptAnalyzer)](https://github.com/PowerShell/PSScriptAnalyzer/commits) | -| | [**PYTHON**](descriptors/python.md#readme) | [pylint](descriptors/python_pylint.md#readme) | [PYTHON_PYLINT](descriptors/python_pylint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/pylint)](https://github.com/PyCQA/pylint/commits) | -| | | [black](descriptors/python_black.md#readme) | [PYTHON_BLACK](descriptors/python_black.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/psf/black)](https://github.com/psf/black/commits) | -| | | [flake8](descriptors/python_flake8.md#readme) | [PYTHON_FLAKE8](descriptors/python_flake8.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/flake8)](https://github.com/PyCQA/flake8/commits) | -| | | [isort](descriptors/python_isort.md#readme) | [PYTHON_ISORT](descriptors/python_isort.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/isort)](https://github.com/PyCQA/isort/commits) | -| | | [bandit](descriptors/python_bandit.md#readme) | [PYTHON_BANDIT](descriptors/python_bandit.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/bandit)](https://github.com/PyCQA/bandit/commits) | -| | | [mypy](descriptors/python_mypy.md#readme) | [PYTHON_MYPY](descriptors/python_mypy.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/python/mypy)](https://github.com/python/mypy/commits) | -| | [**R**](descriptors/r.md#readme) | [lintr](descriptors/r_lintr.md#readme) | [R_LINTR](descriptors/r_lintr.md#readme) | | | -| | [**RAKU**](descriptors/raku.md#readme) | [raku](descriptors/raku_raku.md#readme) | [RAKU_RAKU](descriptors/raku_raku.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rakudo/rakudo)](https://github.com/rakudo/rakudo/commits) | -| | [**RUBY**](descriptors/ruby.md#readme) | [rubocop](descriptors/ruby_rubocop.md#readme) | [RUBY_RUBOCOP](descriptors/ruby_rubocop.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/rubocop-hq/rubocop)](https://github.com/rubocop-hq/rubocop/commits) | -| | [**RUST**](descriptors/rust.md#readme) | [clippy](descriptors/rust_clippy.md#readme) | [RUST_CLIPPY](descriptors/rust_clippy.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rust-lang/rust-clippy)](https://github.com/rust-lang/rust-clippy/commits) | -| | [**SALESFORCE**](descriptors/salesforce.md#readme) | [sfdx-scanner-apex](descriptors/salesforce_sfdx_scanner_apex.md#readme) | [SALESFORCE_SFDX_SCANNER_APEX](descriptors/salesforce_sfdx_scanner_apex.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | | [sfdx-scanner-aura](descriptors/salesforce_sfdx_scanner_aura.md#readme) | [SALESFORCE_SFDX_SCANNER_AURA](descriptors/salesforce_sfdx_scanner_aura.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | | [sfdx-scanner-lwc](descriptors/salesforce_sfdx_scanner_lwc.md#readme) | [SALESFORCE_SFDX_SCANNER_LWC](descriptors/salesforce_sfdx_scanner_lwc.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | [**SCALA**](descriptors/scala.md#readme) | [scalafix](descriptors/scala_scalafix.md#readme) | [SCALA_SCALAFIX](descriptors/scala_scalafix.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/scalacenter/scalafix)](https://github.com/scalacenter/scalafix/commits) | -| | [**SQL**](descriptors/sql.md#readme) | [sql-lint](descriptors/sql_sql_lint.md#readme) | [SQL_SQL_LINT](descriptors/sql_sql_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](descriptors/sql_sqlfluff.md#readme) | [SQL_SQLFLUFF](descriptors/sql_sqlfluff.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | -| | | [tsqllint](descriptors/sql_tsqllint.md#readme) | [SQL_TSQLLINT](descriptors/sql_tsqllint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tsqllint/tsqllint)](https://github.com/tsqllint/tsqllint/commits) | -| | [**SWIFT**](descriptors/swift.md#readme) | [swiftlint](descriptors/swift_swiftlint.md#readme) | [SWIFT_SWIFTLINT](descriptors/swift_swiftlint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/realm/SwiftLint)](https://github.com/realm/SwiftLint/commits) | -| | [**TSX**](descriptors/tsx.md#readme) | [eslint](descriptors/tsx_eslint.md#readme) | [TSX_ESLINT](descriptors/tsx_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yannickcr/eslint-plugin-react)](https://github.com/yannickcr/eslint-plugin-react/commits) | -| | [**TYPESCRIPT**](descriptors/typescript.md#readme) | [eslint](descriptors/typescript_eslint.md#readme) | [TYPESCRIPT_ES](descriptors/typescript_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/eslint/eslint)](https://github.com/eslint/eslint/commits) | -| | | [standard](descriptors/typescript_standard.md#readme) | [TYPESCRIPT_STANDARD](descriptors/typescript_standard.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/standard/standard)](https://github.com/standard/standard/commits) | -| | | [prettier](descriptors/typescript_prettier.md#readme) | [TYPESCRIPT_PRETTIER](descriptors/typescript_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**Visual Basic .NET** (VBDOTNET)](descriptors/vbdotnet.md#readme) | [dotnet-format](descriptors/vbdotnet_dotnet_format.md#readme) | [VBDOTNET_DOTNET_FORMAT](descriptors/vbdotnet_dotnet_format.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotnet/format)](https://github.com/dotnet/format/commits) | +| | Language | Linter | Configuration key | Additional | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|-------------------------------------------------------------------------|------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](descriptors/bash.md#readme) | [bash-exec](descriptors/bash_bash_exec.md#readme) | [BASH_EXEC](descriptors/bash_bash_exec.md#readme) | | +| | | [shellcheck](descriptors/bash_shellcheck.md#readme) | [BASH_SHELLCHECK](descriptors/bash_shellcheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](descriptors/bash_shfmt.md#readme) | [BASH_SHFMT](descriptors/bash_shfmt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**C**](descriptors/c.md#readme) | [cpplint](descriptors/c_cpplint.md#readme) | [C_CPPLINT](descriptors/c_cpplint.md#readme) | | +| | [**CLOJURE**](descriptors/clojure.md#readme) | [clj-kondo](descriptors/clojure_clj_kondo.md#readme) | [CLOJURE_CLJ_KONDO](descriptors/clojure_clj_kondo.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/borkdude/clj-kondo?cacheSeconds=3600)](https://github.com/borkdude/clj-kondo) | +| | [**COFFEE**](descriptors/coffee.md#readme) | [coffeelint](descriptors/coffee_coffeelint.md#readme) | [COFFEE_COFFEELINT](descriptors/coffee_coffeelint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/clutchski/coffeelint?cacheSeconds=3600)](https://github.com/clutchski/coffeelint) | +| | [**C++** (CPP)](descriptors/cpp.md#readme) | [cpplint](descriptors/cpp_cpplint.md#readme) | [CPP_CPPLINT](descriptors/cpp_cpplint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/cpplint/cpplint?cacheSeconds=3600)](https://github.com/cpplint/cpplint) | +| | [**C#** (CSHARP)](descriptors/csharp.md#readme) | [dotnet-format](descriptors/csharp_dotnet_format.md#readme) | [CSHARP_DOTNET_FORMAT](descriptors/csharp_dotnet_format.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/dotnet/format?cacheSeconds=3600)](https://github.com/dotnet/format) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**DART**](descriptors/dart.md#readme) | [dartanalyzer](descriptors/dart_dartanalyzer.md#readme) | [DART_DARTANALYZER](descriptors/dart_dartanalyzer.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/dart-lang/sdk?cacheSeconds=3600)](https://github.com/dart-lang/sdk) | +| | [**GO**](descriptors/go.md#readme) | [golangci-lint](descriptors/go_golangci_lint.md#readme) | [GO_GOLANGCI_LINT](descriptors/go_golangci_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) | +| | | [revive](descriptors/go_revive.md#readme) | [GO_REVIVE](descriptors/go_revive.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/mgechev/revive?cacheSeconds=3600)](https://github.com/mgechev/revive) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**GROOVY**](descriptors/groovy.md#readme) | [npm-groovy-lint](descriptors/groovy_npm_groovy_lint.md#readme) | [GROOVY_NPM_GROOVY_LINT](descriptors/groovy_npm_groovy_lint.md#readme) | [![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) | +| | [**JAVA**](descriptors/java.md#readme) | [checkstyle](descriptors/java_checkstyle.md#readme) | [JAVA_CHECKSTYLE](descriptors/java_checkstyle.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/checkstyle/checkstyle?cacheSeconds=3600)](https://github.com/checkstyle/checkstyle) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**JAVASCRIPT**](descriptors/javascript.md#readme) | [eslint](descriptors/javascript_eslint.md#readme) | [JAVASCRIPT_ES](descriptors/javascript_eslint.md#readme) | [![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) | +| | | [standard](descriptors/javascript_standard.md#readme) | [JAVASCRIPT_STANDARD](descriptors/javascript_standard.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [prettier](descriptors/javascript_prettier.md#readme) | [JAVASCRIPT_PRETTIER](descriptors/javascript_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**JSX**](descriptors/jsx.md#readme) | [eslint](descriptors/jsx_eslint.md#readme) | [JSX_ESLINT](descriptors/jsx_eslint.md#readme) | ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**KOTLIN**](descriptors/kotlin.md#readme) | [ktlint](descriptors/kotlin_ktlint.md#readme) | [KOTLIN_KTLINT](descriptors/kotlin_ktlint.md#readme) | [![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) | +| | [**LUA**](descriptors/lua.md#readme) | [luacheck](descriptors/lua_luacheck.md#readme) | [LUA_LUACHECK](descriptors/lua_luacheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/luarocks/luacheck?cacheSeconds=3600)](https://github.com/luarocks/luacheck) | +| | [**PERL**](descriptors/perl.md#readme) | [perlcritic](descriptors/perl_perlcritic.md#readme) | [PERL_PERLCRITIC](descriptors/perl_perlcritic.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/Perl-Critic/Perl-Critic?cacheSeconds=3600)](https://github.com/Perl-Critic/Perl-Critic) | +| | [**PHP**](descriptors/php.md#readme) | [phpcs](descriptors/php_phpcs.md#readme) | [PHP_PHPCS](descriptors/php_phpcs.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/squizlabs/PHP_CodeSniffer?cacheSeconds=3600)](https://github.com/squizlabs/PHP_CodeSniffer) | +| | | [phpstan](descriptors/php_phpstan.md#readme) | [PHP_PHPSTAN](descriptors/php_phpstan.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/phpstan/phpstan?cacheSeconds=3600)](https://github.com/phpstan/phpstan) | +| | | [psalm](descriptors/php_psalm.md#readme) | [PHP_PSALM](descriptors/php_psalm.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/vimeo/psalm?cacheSeconds=3600)](https://github.com/vimeo/psalm) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [phplint](descriptors/php_phplint.md#readme) | [PHP_PHPLINT](descriptors/php_phplint.md#readme) | | +| | [**POWERSHELL**](descriptors/powershell.md#readme) | [powershell](descriptors/powershell_powershell.md#readme) | [POWERSHELL_POWERSHELL](descriptors/powershell_powershell.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PowerShell/PSScriptAnalyzer?cacheSeconds=3600)](https://github.com/PowerShell/PSScriptAnalyzer) | +| | [**PYTHON**](descriptors/python.md#readme) | [pylint](descriptors/python_pylint.md#readme) | [PYTHON_PYLINT](descriptors/python_pylint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/pylint?cacheSeconds=3600)](https://github.com/PyCQA/pylint) | +| | | [black](descriptors/python_black.md#readme) | [PYTHON_BLACK](descriptors/python_black.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/psf/black?cacheSeconds=3600)](https://github.com/psf/black) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [flake8](descriptors/python_flake8.md#readme) | [PYTHON_FLAKE8](descriptors/python_flake8.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/flake8?cacheSeconds=3600)](https://github.com/PyCQA/flake8) | +| | | [isort](descriptors/python_isort.md#readme) | [PYTHON_ISORT](descriptors/python_isort.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/isort?cacheSeconds=3600)](https://github.com/PyCQA/isort) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [bandit](descriptors/python_bandit.md#readme) | [PYTHON_BANDIT](descriptors/python_bandit.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/bandit?cacheSeconds=3600)](https://github.com/PyCQA/bandit) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [mypy](descriptors/python_mypy.md#readme) | [PYTHON_MYPY](descriptors/python_mypy.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/python/mypy?cacheSeconds=3600)](https://github.com/python/mypy) | +| | [**R**](descriptors/r.md#readme) | [lintr](descriptors/r_lintr.md#readme) | [R_LINTR](descriptors/r_lintr.md#readme) | | +| | [**RAKU**](descriptors/raku.md#readme) | [raku](descriptors/raku_raku.md#readme) | [RAKU_RAKU](descriptors/raku_raku.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rakudo/rakudo?cacheSeconds=3600)](https://github.com/rakudo/rakudo) | +| | [**RUBY**](descriptors/ruby.md#readme) | [rubocop](descriptors/ruby_rubocop.md#readme) | [RUBY_RUBOCOP](descriptors/ruby_rubocop.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rubocop-hq/rubocop?cacheSeconds=3600)](https://github.com/rubocop-hq/rubocop) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**RUST**](descriptors/rust.md#readme) | [clippy](descriptors/rust_clippy.md#readme) | [RUST_CLIPPY](descriptors/rust_clippy.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rust-lang/rust-clippy?cacheSeconds=3600)](https://github.com/rust-lang/rust-clippy) | +| | [**SALESFORCE**](descriptors/salesforce.md#readme) | [sfdx-scanner-apex](descriptors/salesforce_sfdx_scanner_apex.md#readme) | [SALESFORCE_SFDX_SCANNER_APEX](descriptors/salesforce_sfdx_scanner_apex.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | | [sfdx-scanner-aura](descriptors/salesforce_sfdx_scanner_aura.md#readme) | [SALESFORCE_SFDX_SCANNER_AURA](descriptors/salesforce_sfdx_scanner_aura.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | | [sfdx-scanner-lwc](descriptors/salesforce_sfdx_scanner_lwc.md#readme) | [SALESFORCE_SFDX_SCANNER_LWC](descriptors/salesforce_sfdx_scanner_lwc.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | [**SCALA**](descriptors/scala.md#readme) | [scalafix](descriptors/scala_scalafix.md#readme) | [SCALA_SCALAFIX](descriptors/scala_scalafix.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/scalacenter/scalafix?cacheSeconds=3600)](https://github.com/scalacenter/scalafix) | +| | [**SQL**](descriptors/sql.md#readme) | [sql-lint](descriptors/sql_sql_lint.md#readme) | [SQL_SQL_LINT](descriptors/sql_sql_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](descriptors/sql_sqlfluff.md#readme) | [SQL_SQLFLUFF](descriptors/sql_sqlfluff.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | +| | | [tsqllint](descriptors/sql_tsqllint.md#readme) | [SQL_TSQLLINT](descriptors/sql_tsqllint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/tsqllint/tsqllint?cacheSeconds=3600)](https://github.com/tsqllint/tsqllint) | +| | [**SWIFT**](descriptors/swift.md#readme) | [swiftlint](descriptors/swift_swiftlint.md#readme) | [SWIFT_SWIFTLINT](descriptors/swift_swiftlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/realm/SwiftLint?cacheSeconds=3600)](https://github.com/realm/SwiftLint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**TSX**](descriptors/tsx.md#readme) | [eslint](descriptors/tsx_eslint.md#readme) | [TSX_ESLINT](descriptors/tsx_eslint.md#readme) | ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TYPESCRIPT**](descriptors/typescript.md#readme) | [eslint](descriptors/typescript_eslint.md#readme) | [TYPESCRIPT_ES](descriptors/typescript_eslint.md#readme) | [![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) | +| | | [standard](descriptors/typescript_standard.md#readme) | [TYPESCRIPT_STANDARD](descriptors/typescript_standard.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [prettier](descriptors/typescript_prettier.md#readme) | [TYPESCRIPT_PRETTIER](descriptors/typescript_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**Visual Basic .NET** (VBDOTNET)](descriptors/vbdotnet.md#readme) | [dotnet-format](descriptors/vbdotnet_dotnet_format.md#readme) | [VBDOTNET_DOTNET_FORMAT](descriptors/vbdotnet_dotnet_format.md#readme) | ![formatter](https://shields.io/badge/-format-yellow) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------|-------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](descriptors/css.md#readme) | [stylelint](descriptors/css_stylelint.md#readme) | [CSS_STYLELINT](descriptors/css_stylelint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](descriptors/css_scss_lint.md#readme) | [CSS_SCSS_LINT](descriptors/css_scss_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](descriptors/env.md#readme) | [dotenv-linter](descriptors/env_dotenv_linter.md#readme) | [ENV_DOTENV_LINTER](descriptors/env_dotenv_linter.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](descriptors/graphql.md#readme) | [graphql-schema-linter](descriptors/graphql_graphql_schema_linter.md#readme) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](descriptors/graphql_graphql_schema_linter.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](descriptors/html.md#readme) | [htmlhint](descriptors/html_htmlhint.md#readme) | [HTML_HTMLHINT](descriptors/html_htmlhint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](descriptors/json.md#readme) | [jsonlint](descriptors/json_jsonlint.md#readme) | [JSON_JSONLINT](descriptors/json_jsonlint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](descriptors/json_eslint_plugin_jsonc.md#readme) | [JSON_ESLINT_PLUGIN_JSONC](descriptors/json_eslint_plugin_jsonc.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](descriptors/json_v8r.md#readme) | [JSON_V8R](descriptors/json_v8r.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](descriptors/json_prettier.md#readme) | [JSON_PRETTIER](descriptors/json_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**LATEX**](descriptors/latex.md#readme) | [chktex](descriptors/latex_chktex.md#readme) | [LATEX_CHKTEX](descriptors/latex_chktex.md#readme) | | | -| | [**MARKDOWN**](descriptors/markdown.md#readme) | [markdownlint](descriptors/markdown_markdownlint.md#readme) | [MARKDOWN_MARKDOWNLINT](descriptors/markdown_markdownlint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](descriptors/markdown_remark_lint.md#readme) | [MARKDOWN_REMARK_LINT](descriptors/markdown_remark_lint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](descriptors/markdown_markdown_link_check.md#readme) | [MARKDOWN_MARKDOWN_LINK_CHECK](descriptors/markdown_markdown_link_check.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](descriptors/markdown_markdown_table_formatter.md#readme) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](descriptors/markdown_markdown_table_formatter.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](descriptors/protobuf.md#readme) | [protolint](descriptors/protobuf_protolint.md#readme) | [PROTOBUF_PROTOLINT](descriptors/protobuf_protolint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**RST**](descriptors/rst.md#readme) | [rst-lint](descriptors/rst_rst_lint.md#readme) | [RST_RST_LINT](descriptors/rst_rst_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/twolfson/restructuredtext-lint)](https://github.com/twolfson/restructuredtext-lint/commits) | -| | | [rstcheck](descriptors/rst_rstcheck.md#readme) | [RST_RSTCHECK](descriptors/rst_rstcheck.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/myint/rstcheck)](https://github.com/myint/rstcheck/commits) | -| | | [rstfmt](descriptors/rst_rstfmt.md#readme) | [RST_RSTFMT](descriptors/rst_rstfmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dzhu/rstfmt)](https://github.com/dzhu/rstfmt/commits) | -| | [**XML**](descriptors/xml.md#readme) | [xmllint](descriptors/xml_xmllint.md#readme) | [XML_XMLLINT](descriptors/xml_xmllint.md#readme) | | | -| | [**YAML**](descriptors/yaml.md#readme) | [prettier](descriptors/yaml_prettier.md#readme) | [YAML_PRETTIER](descriptors/yaml_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](descriptors/yaml_yamllint.md#readme) | [YAML_YAMLLINT](descriptors/yaml_yamllint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](descriptors/yaml_v8r.md#readme) | [YAML_V8R](descriptors/yaml_v8r.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------|-------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](descriptors/css.md#readme) | [stylelint](descriptors/css_stylelint.md#readme) | [CSS_STYLELINT](descriptors/css_stylelint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](descriptors/css_scss_lint.md#readme) | [CSS_SCSS_LINT](descriptors/css_scss_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](descriptors/env.md#readme) | [dotenv-linter](descriptors/env_dotenv_linter.md#readme) | [ENV_DOTENV_LINTER](descriptors/env_dotenv_linter.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](descriptors/graphql.md#readme) | [graphql-schema-linter](descriptors/graphql_graphql_schema_linter.md#readme) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](descriptors/graphql_graphql_schema_linter.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](descriptors/html.md#readme) | [htmlhint](descriptors/html_htmlhint.md#readme) | [HTML_HTMLHINT](descriptors/html_htmlhint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](descriptors/json.md#readme) | [jsonlint](descriptors/json_jsonlint.md#readme) | [JSON_JSONLINT](descriptors/json_jsonlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](descriptors/json_eslint_plugin_jsonc.md#readme) | [JSON_ESLINT_PLUGIN_JSONC](descriptors/json_eslint_plugin_jsonc.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](descriptors/json_v8r.md#readme) | [JSON_V8R](descriptors/json_v8r.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](descriptors/json_prettier.md#readme) | [JSON_PRETTIER](descriptors/json_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**LATEX**](descriptors/latex.md#readme) | [chktex](descriptors/latex_chktex.md#readme) | [LATEX_CHKTEX](descriptors/latex_chktex.md#readme) | | +| | [**MARKDOWN**](descriptors/markdown.md#readme) | [markdownlint](descriptors/markdown_markdownlint.md#readme) | [MARKDOWN_MARKDOWNLINT](descriptors/markdown_markdownlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [remark-lint](descriptors/markdown_remark_lint.md#readme) | [MARKDOWN_REMARK_LINT](descriptors/markdown_remark_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/remarkjs/remark-lint?cacheSeconds=3600)](https://github.com/remarkjs/remark-lint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](descriptors/markdown_markdown_link_check.md#readme) | [MARKDOWN_MARKDOWN_LINK_CHECK](descriptors/markdown_markdown_link_check.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](descriptors/markdown_markdown_table_formatter.md#readme) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](descriptors/markdown_markdown_table_formatter.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](descriptors/protobuf.md#readme) | [protolint](descriptors/protobuf_protolint.md#readme) | [PROTOBUF_PROTOLINT](descriptors/protobuf_protolint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**RST**](descriptors/rst.md#readme) | [rst-lint](descriptors/rst_rst_lint.md#readme) | [RST_RST_LINT](descriptors/rst_rst_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/twolfson/restructuredtext-lint?cacheSeconds=3600)](https://github.com/twolfson/restructuredtext-lint) | +| | | [rstcheck](descriptors/rst_rstcheck.md#readme) | [RST_RSTCHECK](descriptors/rst_rstcheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/myint/rstcheck?cacheSeconds=3600)](https://github.com/myint/rstcheck) | +| | [**XML**](descriptors/xml.md#readme) | [xmllint](descriptors/xml_xmllint.md#readme) | [XML_XMLLINT](descriptors/xml_xmllint.md#readme) | | +| | [**YAML**](descriptors/yaml.md#readme) | [prettier](descriptors/yaml_prettier.md#readme) | [YAML_PRETTIER](descriptors/yaml_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](descriptors/yaml_yamllint.md#readme) | [YAML_YAMLLINT](descriptors/yaml_yamllint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](descriptors/yaml_v8r.md#readme) | [YAML_V8R](descriptors/yaml_v8r.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------|---------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](descriptors/action.md#readme) | [actionlint](descriptors/action_actionlint.md#readme) | [ACTION_ACTIONLINT](descriptors/action_actionlint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](descriptors/ansible.md#readme) | [ansible-lint](descriptors/ansible_ansible_lint.md#readme) | [ANSIBLE_ANSIBLE_LINT](descriptors/ansible_ansible_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**ARM**](descriptors/arm.md#readme) | [arm-ttk](descriptors/arm_arm_ttk.md#readme) | [ARM_ARM_TTK](descriptors/arm_arm_ttk.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/Azure/arm-ttk)](https://github.com/Azure/arm-ttk/commits) | -| | [**CLOUDFORMATION**](descriptors/cloudformation.md#readme) | [cfn-lint](descriptors/cloudformation_cfn_lint.md#readme) | [CLOUDFORMATION_CFN_LINT](descriptors/cloudformation_cfn_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/martysweet/cfn-lint)](https://github.com/martysweet/cfn-lint/commits) | -| | [**DOCKERFILE**](descriptors/dockerfile.md#readme) | [dockerfilelint](descriptors/dockerfile_dockerfilelint.md#readme) | [DOCKERFILE_DOCKERFILELINT](descriptors/dockerfile_dockerfilelint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](descriptors/dockerfile_hadolint.md#readme) | [DOCKERFILE_HADOLINT](descriptors/dockerfile_hadolint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](descriptors/editorconfig.md#readme) | [editorconfig-checker](descriptors/editorconfig_editorconfig_checker.md#readme) | [EDITORCONFIG_EDITORCONFIG_CHECKER](descriptors/editorconfig_editorconfig_checker.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**GHERKIN**](descriptors/gherkin.md#readme) | [gherkin-lint](descriptors/gherkin_gherkin_lint.md#readme) | [GHERKIN_GHERKIN_LINT](descriptors/gherkin_gherkin_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/vsiakka/gherkin-lint)](https://github.com/vsiakka/gherkin-lint/commits) | -| | [**KUBERNETES**](descriptors/kubernetes.md#readme) | [kubeval](descriptors/kubernetes_kubeval.md#readme) | [KUBERNETES_KUBEVAL](descriptors/kubernetes_kubeval.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](descriptors/kubernetes_kubeconform.md#readme) | [KUBERNETES_KUBECONFORM](descriptors/kubernetes_kubeconform.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](descriptors/openapi.md#readme) | [spectral](descriptors/openapi_spectral.md#readme) | [OPENAPI_SPECTRAL](descriptors/openapi_spectral.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**PUPPET**](descriptors/puppet.md#readme) | [puppet-lint](descriptors/puppet_puppet_lint.md#readme) | [PUPPET_PUPPET_LINT](descriptors/puppet_puppet_lint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/rodjek/puppet-lint)](https://github.com/rodjek/puppet-lint/commits) | -| | [**SNAKEMAKE**](descriptors/snakemake.md#readme) | [snakemake](descriptors/snakemake_snakemake.md#readme) | [SNAKEMAKE_LINT](descriptors/snakemake_snakemake.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](descriptors/snakemake_snakefmt.md#readme) | [SNAKEMAKE_SNAKEFMT](descriptors/snakemake_snakefmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](descriptors/tekton.md#readme) | [tekton-lint](descriptors/tekton_tekton_lint.md#readme) | [TEKTON_TEKTON_LINT](descriptors/tekton_tekton_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | -| | [**TERRAFORM**](descriptors/terraform.md#readme) | [tflint](descriptors/terraform_tflint.md#readme) | [TERRAFORM_TFLINT](descriptors/terraform_tflint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/terraform-linters/tflint)](https://github.com/terraform-linters/tflint/commits) | -| | | [terrascan](descriptors/terraform_terrascan.md#readme) | [TERRAFORM_TERRASCAN](descriptors/terraform_terrascan.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/accurics/terrascan)](https://github.com/accurics/terrascan/commits) | -| | | [terragrunt](descriptors/terraform_terragrunt.md#readme) | [TERRAFORM_TERRAGRUNT](descriptors/terraform_terragrunt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/gruntwork-io/terragrunt)](https://github.com/gruntwork-io/terragrunt/commits) | -| | | [terraform-fmt](descriptors/terraform_terraform_fmt.md#readme) | [TERRAFORM_TERRAFORM_FMT](descriptors/terraform_terraform_fmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/hashicorp/terraform)](https://github.com/hashicorp/terraform/commits) | -| | | [checkov](descriptors/terraform_checkov.md#readme) | [TERRAFORM_CHECKOV](descriptors/terraform_checkov.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/bridgecrewio/checkov)](https://github.com/bridgecrewio/checkov/commits) | -| | | [kics](descriptors/terraform_kics.md#readme) | [TERRAFORM_KICS](descriptors/terraform_kics.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/checkmarx/kics)](https://github.com/checkmarx/kics/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------|---------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](descriptors/action.md#readme) | [actionlint](descriptors/action_actionlint.md#readme) | [ACTION_ACTIONLINT](descriptors/action_actionlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](descriptors/ansible.md#readme) | [ansible-lint](descriptors/ansible_ansible_lint.md#readme) | [ANSIBLE_ANSIBLE_LINT](descriptors/ansible_ansible_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**ARM**](descriptors/arm.md#readme) | [arm-ttk](descriptors/arm_arm_ttk.md#readme) | [ARM_ARM_TTK](descriptors/arm_arm_ttk.md#readme) | | +| | [**CLOUDFORMATION**](descriptors/cloudformation.md#readme) | [cfn-lint](descriptors/cloudformation_cfn_lint.md#readme) | [CLOUDFORMATION_CFN_LINT](descriptors/cloudformation_cfn_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/aws-cloudformation/cfn-lint?cacheSeconds=3600)](https://github.com/aws-cloudformation/cfn-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](descriptors/dockerfile.md#readme) | [hadolint](descriptors/dockerfile_hadolint.md#readme) | [DOCKERFILE_HADOLINT](descriptors/dockerfile_hadolint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](descriptors/editorconfig.md#readme) | [editorconfig-checker](descriptors/editorconfig_editorconfig_checker.md#readme) | [EDITORCONFIG_EDITORCONFIG_CHECKER](descriptors/editorconfig_editorconfig_checker.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**GHERKIN**](descriptors/gherkin.md#readme) | [gherkin-lint](descriptors/gherkin_gherkin_lint.md#readme) | [GHERKIN_GHERKIN_LINT](descriptors/gherkin_gherkin_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/vsiakka/gherkin-lint?cacheSeconds=3600)](https://github.com/vsiakka/gherkin-lint) | +| | [**KUBERNETES**](descriptors/kubernetes.md#readme) | [kubeval](descriptors/kubernetes_kubeval.md#readme) | [KUBERNETES_KUBEVAL](descriptors/kubernetes_kubeval.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](descriptors/kubernetes_kubeconform.md#readme) | [KUBERNETES_KUBECONFORM](descriptors/kubernetes_kubeconform.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](descriptors/openapi.md#readme) | [spectral](descriptors/openapi_spectral.md#readme) | [OPENAPI_SPECTRAL](descriptors/openapi_spectral.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**PUPPET**](descriptors/puppet.md#readme) | [puppet-lint](descriptors/puppet_puppet_lint.md#readme) | [PUPPET_PUPPET_LINT](descriptors/puppet_puppet_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rodjek/puppet-lint?cacheSeconds=3600)](https://github.com/rodjek/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**SNAKEMAKE**](descriptors/snakemake.md#readme) | [snakemake](descriptors/snakemake_snakemake.md#readme) | [SNAKEMAKE_LINT](descriptors/snakemake_snakemake.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | | [snakefmt](descriptors/snakemake_snakefmt.md#readme) | [SNAKEMAKE_SNAKEFMT](descriptors/snakemake_snakefmt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**TEKTON**](descriptors/tekton.md#readme) | [tekton-lint](descriptors/tekton_tekton_lint.md#readme) | [TEKTON_TEKTON_LINT](descriptors/tekton_tekton_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | [**TERRAFORM**](descriptors/terraform.md#readme) | [tflint](descriptors/terraform_tflint.md#readme) | [TERRAFORM_TFLINT](descriptors/terraform_tflint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/terraform-linters/tflint?cacheSeconds=3600)](https://github.com/terraform-linters/tflint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [terrascan](descriptors/terraform_terrascan.md#readme) | [TERRAFORM_TERRASCAN](descriptors/terraform_terrascan.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/accurics/terrascan?cacheSeconds=3600)](https://github.com/accurics/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [terragrunt](descriptors/terraform_terragrunt.md#readme) | [TERRAFORM_TERRAGRUNT](descriptors/terraform_terragrunt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/gruntwork-io/terragrunt?cacheSeconds=3600)](https://github.com/gruntwork-io/terragrunt) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [terraform-fmt](descriptors/terraform_terraform_fmt.md#readme) | [TERRAFORM_TERRAFORM_FMT](descriptors/terraform_terraform_fmt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [checkov](descriptors/terraform_checkov.md#readme) | [TERRAFORM_CHECKOV](descriptors/terraform_checkov.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [kics](descriptors/terraform_kics.md#readme) | [TERRAFORM_KICS](descriptors/terraform_kics.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|------------------------------------------------------------|------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](descriptors/copypaste.md#readme) | [jscpd](descriptors/copypaste_jscpd.md#readme) | [COPYPASTE_JSCPD](descriptors/copypaste_jscpd.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](descriptors/credentials.md#readme) | [secretlint](descriptors/credentials_secretlint.md#readme) | [CREDENTIALS_SECRETLINT](descriptors/credentials_secretlint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](descriptors/git.md#readme) | [git_diff](descriptors/git_git_diff.md#readme) | [GIT_GIT_DIFF](descriptors/git_git_diff.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](descriptors/spell.md#readme) | [misspell](descriptors/spell_misspell.md#readme) | [SPELL_MISSPELL](descriptors/spell_misspell.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](descriptors/spell_cspell.md#readme) | [SPELL_CSPELL](descriptors/spell_cspell.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------|-----------------------------------------------------------|----------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](descriptors/copypaste.md#readme) | [jscpd](descriptors/copypaste_jscpd.md#readme) | [COPYPASTE_JSCPD](descriptors/copypaste_jscpd.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](descriptors/repository.md#readme) | [devskim](descriptors/repository_devskim.md#readme) | [REPOSITORY_DEVSKIM](descriptors/repository_devskim.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [dustilock](descriptors/repository_dustilock.md#readme) | [REPOSITORY_DUSTILOCK](descriptors/repository_dustilock.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/Checkmarx/dustilock?cacheSeconds=3600)](https://github.com/Checkmarx/dustilock) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [git_diff](descriptors/repository_git_diff.md#readme) | [REPOSITORY_GIT_DIFF](descriptors/repository_git_diff.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](descriptors/repository_gitleaks.md#readme) | [REPOSITORY_GITLEAKS](descriptors/repository_gitleaks.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](descriptors/repository_goodcheck.md#readme) | [REPOSITORY_GOODCHECK](descriptors/repository_goodcheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](descriptors/repository_secretlint.md#readme) | [REPOSITORY_SECRETLINT](descriptors/repository_secretlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](descriptors/repository_semgrep.md#readme) | [REPOSITORY_SEMGREP](descriptors/repository_semgrep.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [syft](descriptors/repository_syft.md#readme) | [REPOSITORY_SYFT](descriptors/repository_syft.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/anchore/syft?cacheSeconds=3600)](https://github.com/anchore/syft) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](descriptors/repository_trivy.md#readme) | [REPOSITORY_TRIVY](descriptors/repository_trivy.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](descriptors/spell.md#readme) | [misspell](descriptors/spell_misspell.md#readme) | [SPELL_MISSPELL](descriptors/spell_misspell.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](descriptors/spell_cspell.md#readme) | [SPELL_CSPELL](descriptors/spell_cspell.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/docs/installation.md b/docs/installation.md index c20f3b07722..de6c3fb4b46 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -101,7 +101,7 @@ jobs: with: name: MegaLinter reports path: | - report + megalinter-reports mega-linter.log # Create pull request if applicable (for now works only on PR from same repository, not from forks) diff --git a/docs/json-schemas/descriptor.html b/docs/json-schemas/descriptor.html index 99c377886a5..5f4319c029e 100644 --- a/docs/json-schemas/descriptor.html +++ b/docs/json-schemas/descriptor.html @@ -48,7 +48,7 @@ }
{
     "dockerfile": [
-        "ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk",
+        "ENV JAVA_HOME=/usr/lib/jvm/java‑11‑openjdk",
         "ENV PATH=\"$JAVA_HOME/bin:${PATH}\""
     ]
 }
@@ -58,10 +58,10 @@
     ]
 }
 

Type: array of string

APK packages identifiers (with or without version)

Each item of this array must be:

Type: string

Example:

[
-    "openjdk11"
+    "openjdk8"
 ]
 

Type: array of string

Will be automatically integrated in generated Dockerfile

Each item of this array must be:

Type: string

Example:

[
-    "ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk",
+    "ENV JAVA_HOME=/usr/lib/jvm/java‑11‑openjdk",
     "ENV PATH=\"$JAVA_HOME/bin:${PATH}\""
 ]
 

Type: array of string

GEM packages identifiers (with or without version)

Each item of this array must be:

Type: string

Type: array of string

NPM packages identifiers (with or without version)

Each item of this array must be:

Type: string

Example:

[
diff --git a/docs/licenses/cfn-lint.md b/docs/licenses/cfn-lint.md
new file mode 100644
index 00000000000..fc06cc4fe49
--- /dev/null
+++ b/docs/licenses/cfn-lint.md
@@ -0,0 +1,14 @@
+MIT No Attribution
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this
+software and associated documentation files (the "Software"), to deal in the Software
+without restriction, including without limitation the rights to use, copy, modify,
+merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
+permit persons to whom the Software is furnished to do so.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/docs/licenses/clippy.md b/docs/licenses/clippy.md
new file mode 100644
index 00000000000..abda0bdaa43
--- /dev/null
+++ b/docs/licenses/clippy.md
@@ -0,0 +1,7 @@
+Copyright 2014-2022 The Rust Project Developers
+
+Licensed under the Apache License, Version 2.0 > or the MIT license
+>, at your
+option. All files in the project carrying such notice may not be
+copied, modified, or distributed except according to those terms.
diff --git a/docs/licenses/clj-kondo.md b/docs/licenses/clj-kondo.md
new file mode 100644
index 00000000000..11ecb7958c7
--- /dev/null
+++ b/docs/licenses/clj-kondo.md
@@ -0,0 +1,198 @@
+Eclipse Public License - v 1.0
+
+THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC
+LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM
+CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT.
+
+1. DEFINITIONS
+
+"Contribution" means:
+
+a) in the case of the initial Contributor, the initial code and documentation
+   distributed under this Agreement, and
+b) in the case of each subsequent Contributor:
+    i) changes to the Program, and
+   ii) additions to the Program;
+
+   where such changes and/or additions to the Program originate from and are
+   distributed by that particular Contributor. A Contribution 'originates' from
+   a Contributor if it was added to the Program by such Contributor itself or
+   anyone acting on such Contributor's behalf. Contributions do not include
+   additions to the Program which: (i) are separate modules of software
+   distributed in conjunction with the Program under their own license
+   agreement, and (ii) are not derivative works of the Program.
+
+"Contributor" means any person or entity that distributes the Program.
+
+"Licensed Patents" mean patent claims licensable by a Contributor which are
+necessarily infringed by the use or sale of its Contribution alone or when
+combined with the Program.
+
+"Program" means the Contributions distributed in accordance with this Agreement.
+
+"Recipient" means anyone who receives the Program under this Agreement,
+including all Contributors.
+
+2. GRANT OF RIGHTS
+  a) Subject to the terms of this Agreement, each Contributor hereby grants
+     Recipient a non-exclusive, worldwide, royalty-free copyright license to
+     reproduce, prepare derivative works of, publicly display, publicly perform,
+     distribute and sublicense the Contribution of such Contributor, if any, and
+     such derivative works, in source code and object code form.
+  b) Subject to the terms of this Agreement, each Contributor hereby grants
+     Recipient a non-exclusive, worldwide, royalty-free patent license under
+     Licensed Patents to make, use, sell, offer to sell, import and otherwise
+     transfer the Contribution of such Contributor, if any, in source code and
+     object code form. This patent license shall apply to the combination of the
+     Contribution and the Program if, at the time the Contribution is added by
+     the Contributor, such addition of the Contribution causes such combination
+     to be covered by the Licensed Patents. The patent license shall not apply
+     to any other combinations which include the Contribution. No hardware per
+     se is licensed hereunder.
+  c) Recipient understands that although each Contributor grants the licenses to
+     its Contributions set forth herein, no assurances are provided by any
+     Contributor that the Program does not infringe the patent or other
+     intellectual property rights of any other entity. Each Contributor
+     disclaims any liability to Recipient for claims brought by any other entity
+     based on infringement of intellectual property rights or otherwise. As a
+     condition to exercising the rights and licenses granted hereunder, each
+     Recipient hereby assumes sole responsibility to secure any other
+     intellectual property rights needed, if any. For example, if a third party
+     patent license is required to allow Recipient to distribute the Program, it
+     is Recipient's responsibility to acquire that license before distributing
+     the Program.
+  d) Each Contributor represents that to its knowledge it has sufficient
+     copyright rights in its Contribution, if any, to grant the copyright
+     license set forth in this Agreement.
+
+3. REQUIREMENTS
+
+A Contributor may choose to distribute the Program in object code form under its
+own license agreement, provided that:
+
+  a) it complies with the terms and conditions of this Agreement; and
+  b) its license agreement:
+      i) effectively disclaims on behalf of all Contributors all warranties and
+         conditions, express and implied, including warranties or conditions of
+         title and non-infringement, and implied warranties or conditions of
+         merchantability and fitness for a particular purpose;
+     ii) effectively excludes on behalf of all Contributors all liability for
+         damages, including direct, indirect, special, incidental and
+         consequential damages, such as lost profits;
+    iii) states that any provisions which differ from this Agreement are offered
+         by that Contributor alone and not by any other party; and
+     iv) states that source code for the Program is available from such
+         Contributor, and informs licensees how to obtain it in a reasonable
+         manner on or through a medium customarily used for software exchange.
+
+When the Program is made available in source code form:
+
+  a) it must be made available under this Agreement; and
+  b) a copy of this Agreement must be included with each copy of the Program.
+     Contributors may not remove or alter any copyright notices contained within
+     the Program.
+
+Each Contributor must identify itself as the originator of its Contribution, if
+any, in a manner that reasonably allows subsequent Recipients to identify the
+originator of the Contribution.
+
+4. COMMERCIAL DISTRIBUTION
+
+Commercial distributors of software may accept certain responsibilities with
+respect to end users, business partners and the like. While this license is
+intended to facilitate the commercial use of the Program, the Contributor who
+includes the Program in a commercial product offering should do so in a manner
+which does not create potential liability for other Contributors. Therefore, if
+a Contributor includes the Program in a commercial product offering, such
+Contributor ("Commercial Contributor") hereby agrees to defend and indemnify
+every other Contributor ("Indemnified Contributor") against any losses, damages
+and costs (collectively "Losses") arising from claims, lawsuits and other legal
+actions brought by a third party against the Indemnified Contributor to the
+extent caused by the acts or omissions of such Commercial Contributor in
+connection with its distribution of the Program in a commercial product
+offering. The obligations in this section do not apply to any claims or Losses
+relating to any actual or alleged intellectual property infringement. In order
+to qualify, an Indemnified Contributor must: a) promptly notify the Commercial
+Contributor in writing of such claim, and b) allow the Commercial Contributor to
+control, and cooperate with the Commercial Contributor in, the defense and any
+related settlement negotiations. The Indemnified Contributor may participate in
+any such claim at its own expense.
+
+For example, a Contributor might include the Program in a commercial product
+offering, Product X. That Contributor is then a Commercial Contributor. If that
+Commercial Contributor then makes performance claims, or offers warranties
+related to Product X, those performance claims and warranties are such
+Commercial Contributor's responsibility alone. Under this section, the
+Commercial Contributor would have to defend claims against the other
+Contributors related to those performance claims and warranties, and if a court
+requires any other Contributor to pay any damages as a result, the Commercial
+Contributor must pay those damages.
+
+5. NO WARRANTY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR
+IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE,
+NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each
+Recipient is solely responsible for determining the appropriateness of using and
+distributing the Program and assumes all risks associated with its exercise of
+rights under this Agreement , including but not limited to the risks and costs
+of program errors, compliance with applicable laws, damage to or loss of data,
+programs or equipment, and unavailability or interruption of operations.
+
+6. DISCLAIMER OF LIABILITY
+
+EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY
+CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST
+PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS
+GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+7. GENERAL
+
+If any provision of this Agreement is invalid or unenforceable under applicable
+law, it shall not affect the validity or enforceability of the remainder of the
+terms of this Agreement, and without further action by the parties hereto, such
+provision shall be reformed to the minimum extent necessary to make such
+provision valid and enforceable.
+
+If Recipient institutes patent litigation against any entity (including a
+cross-claim or counterclaim in a lawsuit) alleging that the Program itself
+(excluding combinations of the Program with other software or hardware)
+infringes such Recipient's patent(s), then such Recipient's rights granted under
+Section 2(b) shall terminate as of the date such litigation is filed.
+
+All Recipient's rights under this Agreement shall terminate if it fails to
+comply with any of the material terms or conditions of this Agreement and does
+not cure such failure in a reasonable period of time after becoming aware of
+such noncompliance. If all Recipient's rights under this Agreement terminate,
+Recipient agrees to cease use and distribution of the Program as soon as
+reasonably practicable. However, Recipient's obligations under this Agreement
+and any licenses granted by Recipient relating to the Program shall continue and
+survive.
+
+Everyone is permitted to copy and distribute copies of this Agreement, but in
+order to avoid inconsistency the Agreement is copyrighted and may only be
+modified in the following manner. The Agreement Steward reserves the right to
+publish new versions (including revisions) of this Agreement from time to time.
+No one other than the Agreement Steward has the right to modify this Agreement.
+The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation
+may assign the responsibility to serve as the Agreement Steward to a suitable
+separate entity. Each new version of the Agreement will be given a
+distinguishing version number. The Program (including Contributions) may always
+be distributed subject to the version of the Agreement under which it was
+received. In addition, after a new version of the Agreement is published,
+Contributor may elect to distribute the Program (including its Contributions)
+under the new version. Except as expressly stated in Sections 2(a) and 2(b)
+above, Recipient receives no rights or licenses to the intellectual property of
+any Contributor under this Agreement, whether expressly, by implication,
+estoppel or otherwise. All rights in the Program not expressly granted under
+this Agreement are reserved.
+
+This Agreement is governed by the laws of the State of New York and the
+intellectual property laws of the United States of America. No party to this
+Agreement will bring a legal action under this Agreement more than one year
+after the cause of action arose. Each party waives its rights to a jury trial in
+any resulting litigation.
diff --git a/docs/licenses/devskim.md b/docs/licenses/devskim.md
new file mode 100644
index 00000000000..8cb179cdb69
--- /dev/null
+++ b/docs/licenses/devskim.md
@@ -0,0 +1,21 @@
+Copyright (c) Microsoft Corporation. All rights reserved.
+
+MIT License
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/docs/licenses/dotnet-format.md b/docs/licenses/dotnet-format.md
new file mode 100644
index 00000000000..a616ed188df
--- /dev/null
+++ b/docs/licenses/dotnet-format.md
@@ -0,0 +1,23 @@
+The MIT License (MIT)
+
+Copyright (c) .NET Foundation and Contributors
+
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/docs/licenses/dustilock.md b/docs/licenses/dustilock.md
new file mode 100644
index 00000000000..d98b758ab17
--- /dev/null
+++ b/docs/licenses/dustilock.md
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright Dustico Inc
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
\ No newline at end of file
diff --git a/docs/licenses/gherkin-lint.md b/docs/licenses/gherkin-lint.md
new file mode 100644
index 00000000000..4f179dc575d
--- /dev/null
+++ b/docs/licenses/gherkin-lint.md
@@ -0,0 +1,13 @@
+Copyright (c) 2016, Vasiliki Siakka
+
+Permission to use, copy, modify, and/or distribute this software for any
+purpose with or without fee is hereby granted, provided that the above
+copyright notice and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/docs/licenses/gitleaks.md b/docs/licenses/gitleaks.md
new file mode 100644
index 00000000000..3c270b36c53
--- /dev/null
+++ b/docs/licenses/gitleaks.md
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 Zachary Rice
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/docs/licenses/goodcheck.md b/docs/licenses/goodcheck.md
new file mode 100644
index 00000000000..14d536f883a
--- /dev/null
+++ b/docs/licenses/goodcheck.md
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2019 Sider Corporation
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/docs/licenses/graphql-schema-linter.md b/docs/licenses/graphql-schema-linter.md
new file mode 100644
index 00000000000..63dcb620b16
--- /dev/null
+++ b/docs/licenses/graphql-schema-linter.md
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2017 Christian Joudrey
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/docs/licenses/hadolint.md b/docs/licenses/hadolint.md
new file mode 100644
index 00000000000..0ecdd39888b
--- /dev/null
+++ b/docs/licenses/hadolint.md
@@ -0,0 +1,674 @@
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. 
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    {one line to give the program's name and a brief idea of what it does.}
+    Copyright (C) {year}  {name of author}
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see .
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    {project}  Copyright (C) {year}  {fullname}
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and`show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+.
diff --git a/docs/mega-linter-vs-super-linter.md b/docs/mega-linter-vs-super-linter.md
index 9e0f70ed177..cfd290ffc20 100644
--- a/docs/mega-linter-vs-super-linter.md
+++ b/docs/mega-linter-vs-super-linter.md
@@ -38,22 +38,22 @@ MegaLinter can be run locally thanks to [mega-linter-runner](https://megalinter.
 
 ### Additional Reporters
 
-- [Console](reporters/ConsoleReporter.md)
+- [Console](https://github.com/megalinter/megalinter/tree/main/docs/reporters/ConsoleReporter.md)
 
 ![Screenshot](https://github.com/megalinter/megalinter/blob/main/docs/assets/images/ConsoleReporter.jpg?raw=true>)
 
-- [Text files](reporters/TextReporter.md)
-- [GitHub Pull Request comments](reporters/GitHubCommentReporter.md)
+- [Text files](https://github.com/megalinter/megalinter/tree/main/docs/reporters/TextReporter.md)
+- [GitHub Pull Request comments](https://github.com/megalinter/megalinter/tree/main/docs/reporters/GitHubCommentReporter.md)
 
 ![Screenshot](https://github.com/megalinter/megalinter/blob/main/docs/assets/images/GitHubCommentReporter.jpg?raw=true>)
 
-- [Gitlab Merge Request comments](reporters/GitlabCommentReporter.md)
+- [Gitlab Merge Request comments](https://github.com/megalinter/megalinter/tree/main/docs/reporters/GitlabCommentReporter.md)
 
 ![Screenshot](https://github.com/megalinter/megalinter/blob/main/docs/assets/images/GitlabCommentReporter.jpg?raw=true>)
 
-- [Updated sources](reporters/UpdatedSourcesReporter.md)
-- [Email](reporters/EmailReporter.md)
-- [File.io](reporters/FileIoReporter.md)
+- [Updated sources](https://github.com/megalinter/megalinter/tree/main/docs/reporters/UpdatedSourcesReporter.md)
+- [Email](https://github.com/megalinter/megalinter/tree/main/docs/reporters/EmailReporter.md)
+- [File.io](https://github.com/megalinter/megalinter/tree/main/docs/reporters/FileIoReporter.md)
 
 ## Enhanced Configuration
 
diff --git a/docs/reporters.md b/docs/reporters.md
index 723a99a7a7e..bfbfcb5f54c 100644
--- a/docs/reporters.md
+++ b/docs/reporters.md
@@ -6,18 +6,18 @@
 
 MegaLinter can generate various reports that you can activate / deactivate and customize
 
-| Reporter                                                            | Description                                                                                                   | Default                 |
-|---------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|-------------------------|
-| [Text files](reporters/TextReporter.md)                             | Generates **One log file by linter** + suggestions for fixes that can not be automated                        | Active                  |
-| [GitHub Pull Request comments](reporters/GitHubCommentReporter.md)  | MegaLinter posts a comment on the PR with a summary of lint results, and links to detailed logs               | Active if GitHub Action |
-| [Gitlab Merge Request comments](reporters/GitlabCommentReporter.md) | Mega-Linter posts a comment on the MR with a summary of lint results, and links to detailed logs              | Active if in Gitlab CI  |
-| [Updated sources](reporters/UpdatedSourcesReporter.md)              | Zip containing **all formatted and auto-fixed sources** so you can extract them in your repository            | Active                  |
-| [IDE Configuration](reporters/ConfigReporter.md)                    | Apply MegaLinter configuration in your local IDE with linter config files and IDE extensions                  | Active                  |
-| [GitHub Status](reporters/GitHubStatusReporter.md)                  | One GitHub status by linter on the PR, with links to detailed logs                                            | Active if GitHub Action |
-| [File.io](reporters/FileIoReporter.md)                              | **Send reports on file.io** so you can access them with a simple hyperlink provided at the end of console log | Inactive                |
-| [JSON](reporters/JsonReporter.md)                                   | Generates a JSON output report file                                                                           | Inactive                |
-| [Email](reporters/EmailReporter.md)                                 | Receive **all reports on your e-mail**, if you can not use artifacts                                          | Active                  |
-| [TAP files](reporters/TapReporter.md)                               | One file by linter following [**Test Anything Protocol**](https://testanything.org/) format                   | Active                  |
-| [Console](reporters/ConsoleReporter.md)                             | **Execution logs** visible in **console** with **summary table** and **links to other reports** at the end    | Active                  |
+| Reporter                                                                                                                    | Description                                                                                                   | Default                 |
+|-----------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------|-------------------------|
+| [Text files](https://github.com/megalinter/megalinter/tree/main/docs/reporters/TextReporter.md)                             | Generates **One log file by linter** + suggestions for fixes that can not be automated                        | Active                  |
+| [GitHub Pull Request comments](https://github.com/megalinter/megalinter/tree/main/docs/reporters/GitHubCommentReporter.md)  | MegaLinter posts a comment on the PR with a summary of lint results, and links to detailed logs               | Active if GitHub Action |
+| [Gitlab Merge Request comments](https://github.com/megalinter/megalinter/tree/main/docs/reporters/GitlabCommentReporter.md) | Mega-Linter posts a comment on the MR with a summary of lint results, and links to detailed logs              | Active if in Gitlab CI  |
+| [Updated sources](https://github.com/megalinter/megalinter/tree/main/docs/reporters/UpdatedSourcesReporter.md)              | Zip containing **all formatted and auto-fixed sources** so you can extract them in your repository            | Active                  |
+| [IDE Configuration](https://github.com/megalinter/megalinter/tree/main/docs/reporters/ConfigReporter.md)                    | Apply MegaLinter configuration in your local IDE with linter config files and IDE extensions                  | Active                  |
+| [GitHub Status](https://github.com/megalinter/megalinter/tree/main/docs/reporters/GitHubStatusReporter.md)                  | One GitHub status by linter on the PR, with links to detailed logs                                            | Active if GitHub Action |
+| [File.io](https://github.com/megalinter/megalinter/tree/main/docs/reporters/FileIoReporter.md)                              | **Send reports on file.io** so you can access them with a simple hyperlink provided at the end of console log | Inactive                |
+| [JSON](https://github.com/megalinter/megalinter/tree/main/docs/reporters/JsonReporter.md)                                   | Generates a JSON output report file                                                                           | Inactive                |
+| [Email](https://github.com/megalinter/megalinter/tree/main/docs/reporters/EmailReporter.md)                                 | Receive **all reports on your e-mail**, if you can not use artifacts                                          | Active                  |
+| [TAP files](https://github.com/megalinter/megalinter/tree/main/docs/reporters/TapReporter.md)                               | One file by linter following [**Test Anything Protocol**](https://testanything.org/) format                   | Active                  |
+| [Console](https://github.com/megalinter/megalinter/tree/main/docs/reporters/ConsoleReporter.md)                             | **Execution logs** visible in **console** with **summary table** and **links to other reports** at the end    | Active                  |
 
 
diff --git a/docs/reporters/GitHubStatusReporter.md b/docs/reporters/GitHubStatusReporter.md
index e9cf9a6c5d7..4f1f25baa58 100644
--- a/docs/reporters/GitHubStatusReporter.md
+++ b/docs/reporters/GitHubStatusReporter.md
@@ -13,6 +13,6 @@ Click on **Details** to access detailed logs
 
 | Variable               | Description                                                                               | Default value            |
 |------------------------|-------------------------------------------------------------------------------------------|--------------------------|
-| GITHUB_STATUS_REPORTER | Activates/deactivates reporter                                                            | true                     |
+| GITHUB_STATUS_REPORTER | Activates/deactivates reporter                                                            | false                    |
 | GITHUB_API_URL         | URL where the github API can be reached
Must be overridden if using GitHub Enterprise | `https://api.github.com` | | GITHUB_SERVER_URL | URL of the GitHub instance
Must be overridden if using GitHub Enterprise | `https://github.com` | diff --git a/docs/reporters/SarifReporter.md b/docs/reporters/SarifReporter.md new file mode 100644 index 00000000000..cfbf41744e1 --- /dev/null +++ b/docs/reporters/SarifReporter.md @@ -0,0 +1,30 @@ +# SARIF Reporter (beta) + +Generates a full execution log in SARIF format within a file named **mega-linter-report.sarif** , located in report folder. + +Note: Only linters able to handle SARIF will provide output in the aggregated SARIF file. + +This reporter **is deactivated by default**. + +![Screenshot](../assets/images/SarifReporter.jpg) + +## Usage + +Activate the reporter (`SARIF_REPORTER: true`) to generate JSON report file. + +If you want GitHub to handle the SARIF file to display it in its UI, add the following step in your GitHub Action Workflow. + +```yaml +- name: Upload MegaLinter scan results to GitHub Security tab +if: ${{ success() }} || ${{ failure() }} +uses: github/codeql-action/upload-sarif@v2 +with: + sarif_file: 'megalinter-reports/megalinter-report.sarif' +``` + +## Configuration + +| Variable | Description | Default value | +|--------------------------|----------------------------------------|--------------------------| +| SARIF_REPORTER | Activates/deactivates reporter | false | +| SARIF_REPORTER_FILE_NAME | File name for SARIF report output file | mega-linter-report.sarif | diff --git a/docs/standalone-linters.md b/docs/standalone-linters.md new file mode 100644 index 00000000000..f33e26a1391 --- /dev/null +++ b/docs/standalone-linters.md @@ -0,0 +1,28 @@ +# Standalone linter docker images + +| Linter key | Docker image | Size | +|:-------------------------|:---------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------:| +| CLOUDFORMATION_CFN_LINT | oxsecurity/megalinter-only-cloudformation_cfn_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-cloudformation_cfn_lint/beta) | +| DOCKERFILE_HADOLINT | oxsecurity/megalinter-only-dockerfile_hadolint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-dockerfile_hadolint/beta) | +| GO_REVIVE | oxsecurity/megalinter-only-go_revive:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-go_revive/beta) | +| GROOVY_NPM_GROOVY_LINT | oxsecurity/megalinter-only-groovy_npm_groovy_lint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-groovy_npm_groovy_lint/beta) | +| JAVA_CHECKSTYLE | oxsecurity/megalinter-only-java_checkstyle:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-java_checkstyle/beta) | +| JAVASCRIPT_ES | oxsecurity/megalinter-only-javascript_es:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-javascript_es/beta) | +| JSON_ESLINT_PLUGIN_JSONC | oxsecurity/megalinter-only-json_eslint_plugin_jsonc:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-json_eslint_plugin_jsonc/beta) | +| JSX_ESLINT | oxsecurity/megalinter-only-jsx_eslint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-jsx_eslint/beta) | +| KOTLIN_KTLINT | oxsecurity/megalinter-only-kotlin_ktlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-kotlin_ktlint/beta) | +| PHP_PSALM | oxsecurity/megalinter-only-php_psalm:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-php_psalm/beta) | +| PYTHON_BANDIT | oxsecurity/megalinter-only-python_bandit:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-python_bandit/beta) | +| REPOSITORY_DEVSKIM | oxsecurity/megalinter-only-repository_devskim:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_devskim/beta) | +| REPOSITORY_DUSTILOCK | oxsecurity/megalinter-only-repository_dustilock:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_dustilock/beta) | +| REPOSITORY_GITLEAKS | oxsecurity/megalinter-only-repository_gitleaks:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_gitleaks/beta) | +| REPOSITORY_SECRETLINT | oxsecurity/megalinter-only-repository_secretlint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_secretlint/beta) | +| REPOSITORY_SEMGREP | oxsecurity/megalinter-only-repository_semgrep:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_semgrep/beta) | +| REPOSITORY_SYFT | oxsecurity/megalinter-only-repository_syft:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_syft/beta) | +| REPOSITORY_TRIVY | oxsecurity/megalinter-only-repository_trivy:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-repository_trivy/beta) | +| TERRAFORM_TFLINT | oxsecurity/megalinter-only-terraform_tflint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-terraform_tflint/beta) | +| TERRAFORM_TERRASCAN | oxsecurity/megalinter-only-terraform_terrascan:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-terraform_terrascan/beta) | +| TERRAFORM_CHECKOV | oxsecurity/megalinter-only-terraform_checkov:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-terraform_checkov/beta) | +| TSX_ESLINT | oxsecurity/megalinter-only-tsx_eslint:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-tsx_eslint/beta) | +| TYPESCRIPT_ES | oxsecurity/megalinter-only-typescript_es:beta | ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/oxsecurity/megalinter-only-typescript_es/beta) | + diff --git a/docs/supported-linters.md b/docs/supported-linters.md index 6f6a860dac8..64f0e6dec58 100644 --- a/docs/supported-linters.md +++ b/docs/supported-linters.md @@ -10,120 +10,124 @@ All linters are integrated in the [MegaLinter docker image](https://hub.docker.c ## Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|-------------------------------------------------------------------------|------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](descriptors/bash.md#readme) | [bash-exec](descriptors/bash_bash_exec.md#readme) | [BASH_EXEC](descriptors/bash_bash_exec.md#readme) | | | -| | | [shellcheck](descriptors/bash_shellcheck.md#readme) | [BASH_SHELLCHECK](descriptors/bash_shellcheck.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](descriptors/bash_shfmt.md#readme) | [BASH_SHFMT](descriptors/bash_shfmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**C**](descriptors/c.md#readme) | [cpplint](descriptors/c_cpplint.md#readme) | [C_CPPLINT](descriptors/c_cpplint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cpplint/cpplint)](https://github.com/cpplint/cpplint/commits) | -| | [**CLOJURE**](descriptors/clojure.md#readme) | [clj-kondo](descriptors/clojure_clj_kondo.md#readme) | [CLOJURE_CLJ_KONDO](descriptors/clojure_clj_kondo.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/borkdude/clj-kondo)](https://github.com/borkdude/clj-kondo/commits) | -| | [**COFFEE**](descriptors/coffee.md#readme) | [coffeelint](descriptors/coffee_coffeelint.md#readme) | [COFFEE_COFFEELINT](descriptors/coffee_coffeelint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/clutchski/coffeelint)](https://github.com/clutchski/coffeelint/commits) | -| | [**C++** (CPP)](descriptors/cpp.md#readme) | [cpplint](descriptors/cpp_cpplint.md#readme) | [CPP_CPPLINT](descriptors/cpp_cpplint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cpplint/cpplint)](https://github.com/cpplint/cpplint/commits) | -| | [**C#** (CSHARP)](descriptors/csharp.md#readme) | [dotnet-format](descriptors/csharp_dotnet_format.md#readme) | [CSHARP_DOTNET_FORMAT](descriptors/csharp_dotnet_format.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotnet/format)](https://github.com/dotnet/format/commits) | -| | [**DART**](descriptors/dart.md#readme) | [dartanalyzer](descriptors/dart_dartanalyzer.md#readme) | [DART_DARTANALYZER](descriptors/dart_dartanalyzer.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/dart-lang/sdk)](https://github.com/dart-lang/sdk/commits) | -| | [**GO**](descriptors/go.md#readme) | [golangci-lint](descriptors/go_golangci_lint.md#readme) | [GO_GOLANGCI_LINT](descriptors/go_golangci_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/golangci/golangci-lint)](https://github.com/golangci/golangci-lint/commits) | -| | | [revive](descriptors/go_revive.md#readme) | [GO_REVIVE](descriptors/go_revive.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/mgechev/revive)](https://github.com/mgechev/revive/commits) | -| | [**GROOVY**](descriptors/groovy.md#readme) | [npm-groovy-lint](descriptors/groovy_npm_groovy_lint.md#readme) | [GROOVY_NPM_GROOVY_LINT](descriptors/groovy_npm_groovy_lint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**JAVA**](descriptors/java.md#readme) | [checkstyle](descriptors/java_checkstyle.md#readme) | [JAVA_CHECKSTYLE](descriptors/java_checkstyle.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/checkstyle/checkstyle)](https://github.com/checkstyle/checkstyle/commits) | -| | [**JAVASCRIPT**](descriptors/javascript.md#readme) | [eslint](descriptors/javascript_eslint.md#readme) | [JAVASCRIPT_ES](descriptors/javascript_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/eslint/eslint)](https://github.com/eslint/eslint/commits) | -| | | [standard](descriptors/javascript_standard.md#readme) | [JAVASCRIPT_STANDARD](descriptors/javascript_standard.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/standard/standard)](https://github.com/standard/standard/commits) | -| | | [prettier](descriptors/javascript_prettier.md#readme) | [JAVASCRIPT_PRETTIER](descriptors/javascript_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**JSX**](descriptors/jsx.md#readme) | [eslint](descriptors/jsx_eslint.md#readme) | [JSX_ESLINT](descriptors/jsx_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yannickcr/eslint-plugin-react)](https://github.com/yannickcr/eslint-plugin-react/commits) | -| | [**KOTLIN**](descriptors/kotlin.md#readme) | [ktlint](descriptors/kotlin_ktlint.md#readme) | [KOTLIN_KTLINT](descriptors/kotlin_ktlint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**LUA**](descriptors/lua.md#readme) | [luacheck](descriptors/lua_luacheck.md#readme) | [LUA_LUACHECK](descriptors/lua_luacheck.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/luarocks/luacheck)](https://github.com/luarocks/luacheck/commits) | -| | [**PERL**](descriptors/perl.md#readme) | [perlcritic](descriptors/perl_perlcritic.md#readme) | [PERL_PERLCRITIC](descriptors/perl_perlcritic.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/Perl-Critic/Perl-Critic)](https://github.com/Perl-Critic/Perl-Critic/commits) | -| | [**PHP**](descriptors/php.md#readme) | [php](descriptors/php_php.md#readme) | [PHP_BUILTIN](descriptors/php_php.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/php/php-src)](https://github.com/php/php-src/commits) | -| | | [phpcs](descriptors/php_phpcs.md#readme) | [PHP_PHPCS](descriptors/php_phpcs.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/squizlabs/PHP_CodeSniffer)](https://github.com/squizlabs/PHP_CodeSniffer/commits) | -| | | [phpstan](descriptors/php_phpstan.md#readme) | [PHP_PHPSTAN](descriptors/php_phpstan.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/phpstan/phpstan)](https://github.com/phpstan/phpstan/commits) | -| | | [psalm](descriptors/php_psalm.md#readme) | [PHP_PSALM](descriptors/php_psalm.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/vimeo/psalm)](https://github.com/vimeo/psalm/commits) | -| | | [phplint](descriptors/php_phplint.md#readme) | [PHP_PHPLINT](descriptors/php_phplint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/overtrue/phplint)](https://github.com/overtrue/phplint/commits) | -| | [**POWERSHELL**](descriptors/powershell.md#readme) | [powershell](descriptors/powershell_powershell.md#readme) | [POWERSHELL_POWERSHELL](descriptors/powershell_powershell.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PowerShell/PSScriptAnalyzer)](https://github.com/PowerShell/PSScriptAnalyzer/commits) | -| | [**PYTHON**](descriptors/python.md#readme) | [pylint](descriptors/python_pylint.md#readme) | [PYTHON_PYLINT](descriptors/python_pylint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/pylint)](https://github.com/PyCQA/pylint/commits) | -| | | [black](descriptors/python_black.md#readme) | [PYTHON_BLACK](descriptors/python_black.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/psf/black)](https://github.com/psf/black/commits) | -| | | [flake8](descriptors/python_flake8.md#readme) | [PYTHON_FLAKE8](descriptors/python_flake8.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/flake8)](https://github.com/PyCQA/flake8/commits) | -| | | [isort](descriptors/python_isort.md#readme) | [PYTHON_ISORT](descriptors/python_isort.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/isort)](https://github.com/PyCQA/isort/commits) | -| | | [bandit](descriptors/python_bandit.md#readme) | [PYTHON_BANDIT](descriptors/python_bandit.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/bandit)](https://github.com/PyCQA/bandit/commits) | -| | | [mypy](descriptors/python_mypy.md#readme) | [PYTHON_MYPY](descriptors/python_mypy.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/python/mypy)](https://github.com/python/mypy/commits) | -| | [**R**](descriptors/r.md#readme) | [lintr](descriptors/r_lintr.md#readme) | [R_LINTR](descriptors/r_lintr.md#readme) | | | -| | [**RAKU**](descriptors/raku.md#readme) | [raku](descriptors/raku_raku.md#readme) | [RAKU_RAKU](descriptors/raku_raku.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rakudo/rakudo)](https://github.com/rakudo/rakudo/commits) | -| | [**RUBY**](descriptors/ruby.md#readme) | [rubocop](descriptors/ruby_rubocop.md#readme) | [RUBY_RUBOCOP](descriptors/ruby_rubocop.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/rubocop-hq/rubocop)](https://github.com/rubocop-hq/rubocop/commits) | -| | [**RUST**](descriptors/rust.md#readme) | [clippy](descriptors/rust_clippy.md#readme) | [RUST_CLIPPY](descriptors/rust_clippy.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rust-lang/rust-clippy)](https://github.com/rust-lang/rust-clippy/commits) | -| | [**SALESFORCE**](descriptors/salesforce.md#readme) | [sfdx-scanner-apex](descriptors/salesforce_sfdx_scanner_apex.md#readme) | [SALESFORCE_SFDX_SCANNER_APEX](descriptors/salesforce_sfdx_scanner_apex.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | | [sfdx-scanner-aura](descriptors/salesforce_sfdx_scanner_aura.md#readme) | [SALESFORCE_SFDX_SCANNER_AURA](descriptors/salesforce_sfdx_scanner_aura.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | | [sfdx-scanner-lwc](descriptors/salesforce_sfdx_scanner_lwc.md#readme) | [SALESFORCE_SFDX_SCANNER_LWC](descriptors/salesforce_sfdx_scanner_lwc.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | [**SCALA**](descriptors/scala.md#readme) | [scalafix](descriptors/scala_scalafix.md#readme) | [SCALA_SCALAFIX](descriptors/scala_scalafix.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/scalacenter/scalafix)](https://github.com/scalacenter/scalafix/commits) | -| | [**SQL**](descriptors/sql.md#readme) | [sql-lint](descriptors/sql_sql_lint.md#readme) | [SQL_SQL_LINT](descriptors/sql_sql_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](descriptors/sql_sqlfluff.md#readme) | [SQL_SQLFLUFF](descriptors/sql_sqlfluff.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | -| | | [tsqllint](descriptors/sql_tsqllint.md#readme) | [SQL_TSQLLINT](descriptors/sql_tsqllint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tsqllint/tsqllint)](https://github.com/tsqllint/tsqllint/commits) | -| | [**SWIFT**](descriptors/swift.md#readme) | [swiftlint](descriptors/swift_swiftlint.md#readme) | [SWIFT_SWIFTLINT](descriptors/swift_swiftlint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/realm/SwiftLint)](https://github.com/realm/SwiftLint/commits) | -| | [**TSX**](descriptors/tsx.md#readme) | [eslint](descriptors/tsx_eslint.md#readme) | [TSX_ESLINT](descriptors/tsx_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yannickcr/eslint-plugin-react)](https://github.com/yannickcr/eslint-plugin-react/commits) | -| | [**TYPESCRIPT**](descriptors/typescript.md#readme) | [eslint](descriptors/typescript_eslint.md#readme) | [TYPESCRIPT_ES](descriptors/typescript_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/eslint/eslint)](https://github.com/eslint/eslint/commits) | -| | | [standard](descriptors/typescript_standard.md#readme) | [TYPESCRIPT_STANDARD](descriptors/typescript_standard.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/standard/standard)](https://github.com/standard/standard/commits) | -| | | [prettier](descriptors/typescript_prettier.md#readme) | [TYPESCRIPT_PRETTIER](descriptors/typescript_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**Visual Basic .NET** (VBDOTNET)](descriptors/vbdotnet.md#readme) | [dotnet-format](descriptors/vbdotnet_dotnet_format.md#readme) | [VBDOTNET_DOTNET_FORMAT](descriptors/vbdotnet_dotnet_format.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotnet/format)](https://github.com/dotnet/format/commits) | +| | Language | Linter | Configuration key | Additional | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------|-------------------------------------------------------------------------|------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](descriptors/bash.md#readme) | [bash-exec](descriptors/bash_bash_exec.md#readme) | [BASH_EXEC](descriptors/bash_bash_exec.md#readme) | | +| | | [shellcheck](descriptors/bash_shellcheck.md#readme) | [BASH_SHELLCHECK](descriptors/bash_shellcheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](descriptors/bash_shfmt.md#readme) | [BASH_SHFMT](descriptors/bash_shfmt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**C**](descriptors/c.md#readme) | [cpplint](descriptors/c_cpplint.md#readme) | [C_CPPLINT](descriptors/c_cpplint.md#readme) | | +| | [**CLOJURE**](descriptors/clojure.md#readme) | [clj-kondo](descriptors/clojure_clj_kondo.md#readme) | [CLOJURE_CLJ_KONDO](descriptors/clojure_clj_kondo.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/borkdude/clj-kondo?cacheSeconds=3600)](https://github.com/borkdude/clj-kondo) | +| | [**COFFEE**](descriptors/coffee.md#readme) | [coffeelint](descriptors/coffee_coffeelint.md#readme) | [COFFEE_COFFEELINT](descriptors/coffee_coffeelint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/clutchski/coffeelint?cacheSeconds=3600)](https://github.com/clutchski/coffeelint) | +| | [**C++** (CPP)](descriptors/cpp.md#readme) | [cpplint](descriptors/cpp_cpplint.md#readme) | [CPP_CPPLINT](descriptors/cpp_cpplint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/cpplint/cpplint?cacheSeconds=3600)](https://github.com/cpplint/cpplint) | +| | [**C#** (CSHARP)](descriptors/csharp.md#readme) | [dotnet-format](descriptors/csharp_dotnet_format.md#readme) | [CSHARP_DOTNET_FORMAT](descriptors/csharp_dotnet_format.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/dotnet/format?cacheSeconds=3600)](https://github.com/dotnet/format) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**DART**](descriptors/dart.md#readme) | [dartanalyzer](descriptors/dart_dartanalyzer.md#readme) | [DART_DARTANALYZER](descriptors/dart_dartanalyzer.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/dart-lang/sdk?cacheSeconds=3600)](https://github.com/dart-lang/sdk) | +| | [**GO**](descriptors/go.md#readme) | [golangci-lint](descriptors/go_golangci_lint.md#readme) | [GO_GOLANGCI_LINT](descriptors/go_golangci_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) | +| | | [revive](descriptors/go_revive.md#readme) | [GO_REVIVE](descriptors/go_revive.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/mgechev/revive?cacheSeconds=3600)](https://github.com/mgechev/revive) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**GROOVY**](descriptors/groovy.md#readme) | [npm-groovy-lint](descriptors/groovy_npm_groovy_lint.md#readme) | [GROOVY_NPM_GROOVY_LINT](descriptors/groovy_npm_groovy_lint.md#readme) | [![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) | +| | [**JAVA**](descriptors/java.md#readme) | [checkstyle](descriptors/java_checkstyle.md#readme) | [JAVA_CHECKSTYLE](descriptors/java_checkstyle.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/checkstyle/checkstyle?cacheSeconds=3600)](https://github.com/checkstyle/checkstyle) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**JAVASCRIPT**](descriptors/javascript.md#readme) | [eslint](descriptors/javascript_eslint.md#readme) | [JAVASCRIPT_ES](descriptors/javascript_eslint.md#readme) | [![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) | +| | | [standard](descriptors/javascript_standard.md#readme) | [JAVASCRIPT_STANDARD](descriptors/javascript_standard.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [prettier](descriptors/javascript_prettier.md#readme) | [JAVASCRIPT_PRETTIER](descriptors/javascript_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**JSX**](descriptors/jsx.md#readme) | [eslint](descriptors/jsx_eslint.md#readme) | [JSX_ESLINT](descriptors/jsx_eslint.md#readme) | ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**KOTLIN**](descriptors/kotlin.md#readme) | [ktlint](descriptors/kotlin_ktlint.md#readme) | [KOTLIN_KTLINT](descriptors/kotlin_ktlint.md#readme) | [![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) | +| | [**LUA**](descriptors/lua.md#readme) | [luacheck](descriptors/lua_luacheck.md#readme) | [LUA_LUACHECK](descriptors/lua_luacheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/luarocks/luacheck?cacheSeconds=3600)](https://github.com/luarocks/luacheck) | +| | [**PERL**](descriptors/perl.md#readme) | [perlcritic](descriptors/perl_perlcritic.md#readme) | [PERL_PERLCRITIC](descriptors/perl_perlcritic.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/Perl-Critic/Perl-Critic?cacheSeconds=3600)](https://github.com/Perl-Critic/Perl-Critic) | +| | [**PHP**](descriptors/php.md#readme) | [phpcs](descriptors/php_phpcs.md#readme) | [PHP_PHPCS](descriptors/php_phpcs.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/squizlabs/PHP_CodeSniffer?cacheSeconds=3600)](https://github.com/squizlabs/PHP_CodeSniffer) | +| | | [phpstan](descriptors/php_phpstan.md#readme) | [PHP_PHPSTAN](descriptors/php_phpstan.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/phpstan/phpstan?cacheSeconds=3600)](https://github.com/phpstan/phpstan) | +| | | [psalm](descriptors/php_psalm.md#readme) | [PHP_PSALM](descriptors/php_psalm.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/vimeo/psalm?cacheSeconds=3600)](https://github.com/vimeo/psalm) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [phplint](descriptors/php_phplint.md#readme) | [PHP_PHPLINT](descriptors/php_phplint.md#readme) | | +| | [**POWERSHELL**](descriptors/powershell.md#readme) | [powershell](descriptors/powershell_powershell.md#readme) | [POWERSHELL_POWERSHELL](descriptors/powershell_powershell.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PowerShell/PSScriptAnalyzer?cacheSeconds=3600)](https://github.com/PowerShell/PSScriptAnalyzer) | +| | [**PYTHON**](descriptors/python.md#readme) | [pylint](descriptors/python_pylint.md#readme) | [PYTHON_PYLINT](descriptors/python_pylint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/pylint?cacheSeconds=3600)](https://github.com/PyCQA/pylint) | +| | | [black](descriptors/python_black.md#readme) | [PYTHON_BLACK](descriptors/python_black.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/psf/black?cacheSeconds=3600)](https://github.com/psf/black) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [flake8](descriptors/python_flake8.md#readme) | [PYTHON_FLAKE8](descriptors/python_flake8.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/flake8?cacheSeconds=3600)](https://github.com/PyCQA/flake8) | +| | | [isort](descriptors/python_isort.md#readme) | [PYTHON_ISORT](descriptors/python_isort.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/isort?cacheSeconds=3600)](https://github.com/PyCQA/isort) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [bandit](descriptors/python_bandit.md#readme) | [PYTHON_BANDIT](descriptors/python_bandit.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/bandit?cacheSeconds=3600)](https://github.com/PyCQA/bandit) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [mypy](descriptors/python_mypy.md#readme) | [PYTHON_MYPY](descriptors/python_mypy.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/python/mypy?cacheSeconds=3600)](https://github.com/python/mypy) | +| | [**R**](descriptors/r.md#readme) | [lintr](descriptors/r_lintr.md#readme) | [R_LINTR](descriptors/r_lintr.md#readme) | | +| | [**RAKU**](descriptors/raku.md#readme) | [raku](descriptors/raku_raku.md#readme) | [RAKU_RAKU](descriptors/raku_raku.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rakudo/rakudo?cacheSeconds=3600)](https://github.com/rakudo/rakudo) | +| | [**RUBY**](descriptors/ruby.md#readme) | [rubocop](descriptors/ruby_rubocop.md#readme) | [RUBY_RUBOCOP](descriptors/ruby_rubocop.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rubocop-hq/rubocop?cacheSeconds=3600)](https://github.com/rubocop-hq/rubocop) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**RUST**](descriptors/rust.md#readme) | [clippy](descriptors/rust_clippy.md#readme) | [RUST_CLIPPY](descriptors/rust_clippy.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rust-lang/rust-clippy?cacheSeconds=3600)](https://github.com/rust-lang/rust-clippy) | +| | [**SALESFORCE**](descriptors/salesforce.md#readme) | [sfdx-scanner-apex](descriptors/salesforce_sfdx_scanner_apex.md#readme) | [SALESFORCE_SFDX_SCANNER_APEX](descriptors/salesforce_sfdx_scanner_apex.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | | [sfdx-scanner-aura](descriptors/salesforce_sfdx_scanner_aura.md#readme) | [SALESFORCE_SFDX_SCANNER_AURA](descriptors/salesforce_sfdx_scanner_aura.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | | [sfdx-scanner-lwc](descriptors/salesforce_sfdx_scanner_lwc.md#readme) | [SALESFORCE_SFDX_SCANNER_LWC](descriptors/salesforce_sfdx_scanner_lwc.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | [**SCALA**](descriptors/scala.md#readme) | [scalafix](descriptors/scala_scalafix.md#readme) | [SCALA_SCALAFIX](descriptors/scala_scalafix.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/scalacenter/scalafix?cacheSeconds=3600)](https://github.com/scalacenter/scalafix) | +| | [**SQL**](descriptors/sql.md#readme) | [sql-lint](descriptors/sql_sql_lint.md#readme) | [SQL_SQL_LINT](descriptors/sql_sql_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](descriptors/sql_sqlfluff.md#readme) | [SQL_SQLFLUFF](descriptors/sql_sqlfluff.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | +| | | [tsqllint](descriptors/sql_tsqllint.md#readme) | [SQL_TSQLLINT](descriptors/sql_tsqllint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/tsqllint/tsqllint?cacheSeconds=3600)](https://github.com/tsqllint/tsqllint) | +| | [**SWIFT**](descriptors/swift.md#readme) | [swiftlint](descriptors/swift_swiftlint.md#readme) | [SWIFT_SWIFTLINT](descriptors/swift_swiftlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/realm/SwiftLint?cacheSeconds=3600)](https://github.com/realm/SwiftLint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**TSX**](descriptors/tsx.md#readme) | [eslint](descriptors/tsx_eslint.md#readme) | [TSX_ESLINT](descriptors/tsx_eslint.md#readme) | ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TYPESCRIPT**](descriptors/typescript.md#readme) | [eslint](descriptors/typescript_eslint.md#readme) | [TYPESCRIPT_ES](descriptors/typescript_eslint.md#readme) | [![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) | +| | | [standard](descriptors/typescript_standard.md#readme) | [TYPESCRIPT_STANDARD](descriptors/typescript_standard.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [prettier](descriptors/typescript_prettier.md#readme) | [TYPESCRIPT_PRETTIER](descriptors/typescript_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**Visual Basic .NET** (VBDOTNET)](descriptors/vbdotnet.md#readme) | [dotnet-format](descriptors/vbdotnet_dotnet_format.md#readme) | [VBDOTNET_DOTNET_FORMAT](descriptors/vbdotnet_dotnet_format.md#readme) | ![formatter](https://shields.io/badge/-format-yellow) | ## Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------|-------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](descriptors/css.md#readme) | [stylelint](descriptors/css_stylelint.md#readme) | [CSS_STYLELINT](descriptors/css_stylelint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](descriptors/css_scss_lint.md#readme) | [CSS_SCSS_LINT](descriptors/css_scss_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](descriptors/env.md#readme) | [dotenv-linter](descriptors/env_dotenv_linter.md#readme) | [ENV_DOTENV_LINTER](descriptors/env_dotenv_linter.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](descriptors/graphql.md#readme) | [graphql-schema-linter](descriptors/graphql_graphql_schema_linter.md#readme) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](descriptors/graphql_graphql_schema_linter.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](descriptors/html.md#readme) | [htmlhint](descriptors/html_htmlhint.md#readme) | [HTML_HTMLHINT](descriptors/html_htmlhint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](descriptors/json.md#readme) | [jsonlint](descriptors/json_jsonlint.md#readme) | [JSON_JSONLINT](descriptors/json_jsonlint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](descriptors/json_eslint_plugin_jsonc.md#readme) | [JSON_ESLINT_PLUGIN_JSONC](descriptors/json_eslint_plugin_jsonc.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](descriptors/json_v8r.md#readme) | [JSON_V8R](descriptors/json_v8r.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](descriptors/json_prettier.md#readme) | [JSON_PRETTIER](descriptors/json_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**LATEX**](descriptors/latex.md#readme) | [chktex](descriptors/latex_chktex.md#readme) | [LATEX_CHKTEX](descriptors/latex_chktex.md#readme) | | | -| | [**MARKDOWN**](descriptors/markdown.md#readme) | [markdownlint](descriptors/markdown_markdownlint.md#readme) | [MARKDOWN_MARKDOWNLINT](descriptors/markdown_markdownlint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](descriptors/markdown_remark_lint.md#readme) | [MARKDOWN_REMARK_LINT](descriptors/markdown_remark_lint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](descriptors/markdown_markdown_link_check.md#readme) | [MARKDOWN_MARKDOWN_LINK_CHECK](descriptors/markdown_markdown_link_check.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](descriptors/markdown_markdown_table_formatter.md#readme) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](descriptors/markdown_markdown_table_formatter.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](descriptors/protobuf.md#readme) | [protolint](descriptors/protobuf_protolint.md#readme) | [PROTOBUF_PROTOLINT](descriptors/protobuf_protolint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**RST**](descriptors/rst.md#readme) | [rst-lint](descriptors/rst_rst_lint.md#readme) | [RST_RST_LINT](descriptors/rst_rst_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/twolfson/restructuredtext-lint)](https://github.com/twolfson/restructuredtext-lint/commits) | -| | | [rstcheck](descriptors/rst_rstcheck.md#readme) | [RST_RSTCHECK](descriptors/rst_rstcheck.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/myint/rstcheck)](https://github.com/myint/rstcheck/commits) | -| | | [rstfmt](descriptors/rst_rstfmt.md#readme) | [RST_RSTFMT](descriptors/rst_rstfmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dzhu/rstfmt)](https://github.com/dzhu/rstfmt/commits) | -| | [**XML**](descriptors/xml.md#readme) | [xmllint](descriptors/xml_xmllint.md#readme) | [XML_XMLLINT](descriptors/xml_xmllint.md#readme) | | | -| | [**YAML**](descriptors/yaml.md#readme) | [prettier](descriptors/yaml_prettier.md#readme) | [YAML_PRETTIER](descriptors/yaml_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](descriptors/yaml_yamllint.md#readme) | [YAML_YAMLLINT](descriptors/yaml_yamllint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](descriptors/yaml_v8r.md#readme) | [YAML_V8R](descriptors/yaml_v8r.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------|-------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](descriptors/css.md#readme) | [stylelint](descriptors/css_stylelint.md#readme) | [CSS_STYLELINT](descriptors/css_stylelint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](descriptors/css_scss_lint.md#readme) | [CSS_SCSS_LINT](descriptors/css_scss_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](descriptors/env.md#readme) | [dotenv-linter](descriptors/env_dotenv_linter.md#readme) | [ENV_DOTENV_LINTER](descriptors/env_dotenv_linter.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](descriptors/graphql.md#readme) | [graphql-schema-linter](descriptors/graphql_graphql_schema_linter.md#readme) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](descriptors/graphql_graphql_schema_linter.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](descriptors/html.md#readme) | [htmlhint](descriptors/html_htmlhint.md#readme) | [HTML_HTMLHINT](descriptors/html_htmlhint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](descriptors/json.md#readme) | [jsonlint](descriptors/json_jsonlint.md#readme) | [JSON_JSONLINT](descriptors/json_jsonlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](descriptors/json_eslint_plugin_jsonc.md#readme) | [JSON_ESLINT_PLUGIN_JSONC](descriptors/json_eslint_plugin_jsonc.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](descriptors/json_v8r.md#readme) | [JSON_V8R](descriptors/json_v8r.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](descriptors/json_prettier.md#readme) | [JSON_PRETTIER](descriptors/json_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**LATEX**](descriptors/latex.md#readme) | [chktex](descriptors/latex_chktex.md#readme) | [LATEX_CHKTEX](descriptors/latex_chktex.md#readme) | | +| | [**MARKDOWN**](descriptors/markdown.md#readme) | [markdownlint](descriptors/markdown_markdownlint.md#readme) | [MARKDOWN_MARKDOWNLINT](descriptors/markdown_markdownlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [remark-lint](descriptors/markdown_remark_lint.md#readme) | [MARKDOWN_REMARK_LINT](descriptors/markdown_remark_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/remarkjs/remark-lint?cacheSeconds=3600)](https://github.com/remarkjs/remark-lint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](descriptors/markdown_markdown_link_check.md#readme) | [MARKDOWN_MARKDOWN_LINK_CHECK](descriptors/markdown_markdown_link_check.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](descriptors/markdown_markdown_table_formatter.md#readme) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](descriptors/markdown_markdown_table_formatter.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](descriptors/protobuf.md#readme) | [protolint](descriptors/protobuf_protolint.md#readme) | [PROTOBUF_PROTOLINT](descriptors/protobuf_protolint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**RST**](descriptors/rst.md#readme) | [rst-lint](descriptors/rst_rst_lint.md#readme) | [RST_RST_LINT](descriptors/rst_rst_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/twolfson/restructuredtext-lint?cacheSeconds=3600)](https://github.com/twolfson/restructuredtext-lint) | +| | | [rstcheck](descriptors/rst_rstcheck.md#readme) | [RST_RSTCHECK](descriptors/rst_rstcheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/myint/rstcheck?cacheSeconds=3600)](https://github.com/myint/rstcheck) | +| | [**XML**](descriptors/xml.md#readme) | [xmllint](descriptors/xml_xmllint.md#readme) | [XML_XMLLINT](descriptors/xml_xmllint.md#readme) | | +| | [**YAML**](descriptors/yaml.md#readme) | [prettier](descriptors/yaml_prettier.md#readme) | [YAML_PRETTIER](descriptors/yaml_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](descriptors/yaml_yamllint.md#readme) | [YAML_YAMLLINT](descriptors/yaml_yamllint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](descriptors/yaml_v8r.md#readme) | [YAML_V8R](descriptors/yaml_v8r.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ## Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------|---------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](descriptors/action.md#readme) | [actionlint](descriptors/action_actionlint.md#readme) | [ACTION_ACTIONLINT](descriptors/action_actionlint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](descriptors/ansible.md#readme) | [ansible-lint](descriptors/ansible_ansible_lint.md#readme) | [ANSIBLE_ANSIBLE_LINT](descriptors/ansible_ansible_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**ARM**](descriptors/arm.md#readme) | [arm-ttk](descriptors/arm_arm_ttk.md#readme) | [ARM_ARM_TTK](descriptors/arm_arm_ttk.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/Azure/arm-ttk)](https://github.com/Azure/arm-ttk/commits) | -| | [**CLOUDFORMATION**](descriptors/cloudformation.md#readme) | [cfn-lint](descriptors/cloudformation_cfn_lint.md#readme) | [CLOUDFORMATION_CFN_LINT](descriptors/cloudformation_cfn_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/martysweet/cfn-lint)](https://github.com/martysweet/cfn-lint/commits) | -| | [**DOCKERFILE**](descriptors/dockerfile.md#readme) | [dockerfilelint](descriptors/dockerfile_dockerfilelint.md#readme) | [DOCKERFILE_DOCKERFILELINT](descriptors/dockerfile_dockerfilelint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](descriptors/dockerfile_hadolint.md#readme) | [DOCKERFILE_HADOLINT](descriptors/dockerfile_hadolint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](descriptors/editorconfig.md#readme) | [editorconfig-checker](descriptors/editorconfig_editorconfig_checker.md#readme) | [EDITORCONFIG_EDITORCONFIG_CHECKER](descriptors/editorconfig_editorconfig_checker.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**GHERKIN**](descriptors/gherkin.md#readme) | [gherkin-lint](descriptors/gherkin_gherkin_lint.md#readme) | [GHERKIN_GHERKIN_LINT](descriptors/gherkin_gherkin_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/vsiakka/gherkin-lint)](https://github.com/vsiakka/gherkin-lint/commits) | -| | [**KUBERNETES**](descriptors/kubernetes.md#readme) | [kubeval](descriptors/kubernetes_kubeval.md#readme) | [KUBERNETES_KUBEVAL](descriptors/kubernetes_kubeval.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](descriptors/kubernetes_kubeconform.md#readme) | [KUBERNETES_KUBECONFORM](descriptors/kubernetes_kubeconform.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](descriptors/openapi.md#readme) | [spectral](descriptors/openapi_spectral.md#readme) | [OPENAPI_SPECTRAL](descriptors/openapi_spectral.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**PUPPET**](descriptors/puppet.md#readme) | [puppet-lint](descriptors/puppet_puppet_lint.md#readme) | [PUPPET_PUPPET_LINT](descriptors/puppet_puppet_lint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/rodjek/puppet-lint)](https://github.com/rodjek/puppet-lint/commits) | -| | [**SNAKEMAKE**](descriptors/snakemake.md#readme) | [snakemake](descriptors/snakemake_snakemake.md#readme) | [SNAKEMAKE_LINT](descriptors/snakemake_snakemake.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](descriptors/snakemake_snakefmt.md#readme) | [SNAKEMAKE_SNAKEFMT](descriptors/snakemake_snakefmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](descriptors/tekton.md#readme) | [tekton-lint](descriptors/tekton_tekton_lint.md#readme) | [TEKTON_TEKTON_LINT](descriptors/tekton_tekton_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | -| | [**TERRAFORM**](descriptors/terraform.md#readme) | [tflint](descriptors/terraform_tflint.md#readme) | [TERRAFORM_TFLINT](descriptors/terraform_tflint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/terraform-linters/tflint)](https://github.com/terraform-linters/tflint/commits) | -| | | [terrascan](descriptors/terraform_terrascan.md#readme) | [TERRAFORM_TERRASCAN](descriptors/terraform_terrascan.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/accurics/terrascan)](https://github.com/accurics/terrascan/commits) | -| | | [terragrunt](descriptors/terraform_terragrunt.md#readme) | [TERRAFORM_TERRAGRUNT](descriptors/terraform_terragrunt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/gruntwork-io/terragrunt)](https://github.com/gruntwork-io/terragrunt/commits) | -| | | [terraform-fmt](descriptors/terraform_terraform_fmt.md#readme) | [TERRAFORM_TERRAFORM_FMT](descriptors/terraform_terraform_fmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/hashicorp/terraform)](https://github.com/hashicorp/terraform/commits) | -| | | [checkov](descriptors/terraform_checkov.md#readme) | [TERRAFORM_CHECKOV](descriptors/terraform_checkov.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/bridgecrewio/checkov)](https://github.com/bridgecrewio/checkov/commits) | -| | | [kics](descriptors/terraform_kics.md#readme) | [TERRAFORM_KICS](descriptors/terraform_kics.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/checkmarx/kics)](https://github.com/checkmarx/kics/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------|---------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](descriptors/action.md#readme) | [actionlint](descriptors/action_actionlint.md#readme) | [ACTION_ACTIONLINT](descriptors/action_actionlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](descriptors/ansible.md#readme) | [ansible-lint](descriptors/ansible_ansible_lint.md#readme) | [ANSIBLE_ANSIBLE_LINT](descriptors/ansible_ansible_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**ARM**](descriptors/arm.md#readme) | [arm-ttk](descriptors/arm_arm_ttk.md#readme) | [ARM_ARM_TTK](descriptors/arm_arm_ttk.md#readme) | | +| | [**CLOUDFORMATION**](descriptors/cloudformation.md#readme) | [cfn-lint](descriptors/cloudformation_cfn_lint.md#readme) | [CLOUDFORMATION_CFN_LINT](descriptors/cloudformation_cfn_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/aws-cloudformation/cfn-lint?cacheSeconds=3600)](https://github.com/aws-cloudformation/cfn-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](descriptors/dockerfile.md#readme) | [hadolint](descriptors/dockerfile_hadolint.md#readme) | [DOCKERFILE_HADOLINT](descriptors/dockerfile_hadolint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](descriptors/editorconfig.md#readme) | [editorconfig-checker](descriptors/editorconfig_editorconfig_checker.md#readme) | [EDITORCONFIG_EDITORCONFIG_CHECKER](descriptors/editorconfig_editorconfig_checker.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**GHERKIN**](descriptors/gherkin.md#readme) | [gherkin-lint](descriptors/gherkin_gherkin_lint.md#readme) | [GHERKIN_GHERKIN_LINT](descriptors/gherkin_gherkin_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/vsiakka/gherkin-lint?cacheSeconds=3600)](https://github.com/vsiakka/gherkin-lint) | +| | [**KUBERNETES**](descriptors/kubernetes.md#readme) | [kubeval](descriptors/kubernetes_kubeval.md#readme) | [KUBERNETES_KUBEVAL](descriptors/kubernetes_kubeval.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](descriptors/kubernetes_kubeconform.md#readme) | [KUBERNETES_KUBECONFORM](descriptors/kubernetes_kubeconform.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](descriptors/openapi.md#readme) | [spectral](descriptors/openapi_spectral.md#readme) | [OPENAPI_SPECTRAL](descriptors/openapi_spectral.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**PUPPET**](descriptors/puppet.md#readme) | [puppet-lint](descriptors/puppet_puppet_lint.md#readme) | [PUPPET_PUPPET_LINT](descriptors/puppet_puppet_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rodjek/puppet-lint?cacheSeconds=3600)](https://github.com/rodjek/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**SNAKEMAKE**](descriptors/snakemake.md#readme) | [snakemake](descriptors/snakemake_snakemake.md#readme) | [SNAKEMAKE_LINT](descriptors/snakemake_snakemake.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | | [snakefmt](descriptors/snakemake_snakefmt.md#readme) | [SNAKEMAKE_SNAKEFMT](descriptors/snakemake_snakefmt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**TEKTON**](descriptors/tekton.md#readme) | [tekton-lint](descriptors/tekton_tekton_lint.md#readme) | [TEKTON_TEKTON_LINT](descriptors/tekton_tekton_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | [**TERRAFORM**](descriptors/terraform.md#readme) | [tflint](descriptors/terraform_tflint.md#readme) | [TERRAFORM_TFLINT](descriptors/terraform_tflint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/terraform-linters/tflint?cacheSeconds=3600)](https://github.com/terraform-linters/tflint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [terrascan](descriptors/terraform_terrascan.md#readme) | [TERRAFORM_TERRASCAN](descriptors/terraform_terrascan.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/accurics/terrascan?cacheSeconds=3600)](https://github.com/accurics/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [terragrunt](descriptors/terraform_terragrunt.md#readme) | [TERRAFORM_TERRAGRUNT](descriptors/terraform_terragrunt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/gruntwork-io/terragrunt?cacheSeconds=3600)](https://github.com/gruntwork-io/terragrunt) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [terraform-fmt](descriptors/terraform_terraform_fmt.md#readme) | [TERRAFORM_TERRAFORM_FMT](descriptors/terraform_terraform_fmt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [checkov](descriptors/terraform_checkov.md#readme) | [TERRAFORM_CHECKOV](descriptors/terraform_checkov.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [kics](descriptors/terraform_kics.md#readme) | [TERRAFORM_KICS](descriptors/terraform_kics.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) | ## Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------|------------------------------------------------------------|------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](descriptors/copypaste.md#readme) | [jscpd](descriptors/copypaste_jscpd.md#readme) | [COPYPASTE_JSCPD](descriptors/copypaste_jscpd.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](descriptors/credentials.md#readme) | [secretlint](descriptors/credentials_secretlint.md#readme) | [CREDENTIALS_SECRETLINT](descriptors/credentials_secretlint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](descriptors/git.md#readme) | [git_diff](descriptors/git_git_diff.md#readme) | [GIT_GIT_DIFF](descriptors/git_git_diff.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](descriptors/spell.md#readme) | [misspell](descriptors/spell_misspell.md#readme) | [SPELL_MISSPELL](descriptors/spell_misspell.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](descriptors/spell_cspell.md#readme) | [SPELL_CSPELL](descriptors/spell_cspell.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------|-----------------------------------------------------------|----------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](descriptors/copypaste.md#readme) | [jscpd](descriptors/copypaste_jscpd.md#readme) | [COPYPASTE_JSCPD](descriptors/copypaste_jscpd.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](descriptors/repository.md#readme) | [devskim](descriptors/repository_devskim.md#readme) | [REPOSITORY_DEVSKIM](descriptors/repository_devskim.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [dustilock](descriptors/repository_dustilock.md#readme) | [REPOSITORY_DUSTILOCK](descriptors/repository_dustilock.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/Checkmarx/dustilock?cacheSeconds=3600)](https://github.com/Checkmarx/dustilock) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [git_diff](descriptors/repository_git_diff.md#readme) | [REPOSITORY_GIT_DIFF](descriptors/repository_git_diff.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](descriptors/repository_gitleaks.md#readme) | [REPOSITORY_GITLEAKS](descriptors/repository_gitleaks.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](descriptors/repository_goodcheck.md#readme) | [REPOSITORY_GOODCHECK](descriptors/repository_goodcheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](descriptors/repository_secretlint.md#readme) | [REPOSITORY_SECRETLINT](descriptors/repository_secretlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](descriptors/repository_semgrep.md#readme) | [REPOSITORY_SEMGREP](descriptors/repository_semgrep.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [syft](descriptors/repository_syft.md#readme) | [REPOSITORY_SYFT](descriptors/repository_syft.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/anchore/syft?cacheSeconds=3600)](https://github.com/anchore/syft) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](descriptors/repository_trivy.md#readme) | [REPOSITORY_TRIVY](descriptors/repository_trivy.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](descriptors/spell.md#readme) | [misspell](descriptors/spell_misspell.md#readme) | [SPELL_MISSPELL](descriptors/spell_misspell.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](descriptors/spell_cspell.md#readme) | [SPELL_CSPELL](descriptors/spell_cspell.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/entrypoint.sh b/entrypoint.sh index ebbeb422796..2dabe41767c 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -3,6 +3,12 @@ PYTHONPATH=$PYTHONPATH:$(pwd) export PYTHONPATH +# Manage debug mode +LOG_LEVEL="${LOG_LEVEL:-INFO}" # Default log level (VERBOSE, DEBUG, TRACE) +if [[ ${LOG_LEVEL} == "DEBUG" ]]; then + printenv +fi + # Manage newest git versions (related to CVE https://github.blog/2022-04-12-git-security-vulnerability-announced/) if [ -z ${GITHUB_WORKSPACE+x} ]; then echo "Setting git safe.directory default: /github/workspace ..." @@ -14,8 +20,10 @@ fi echo "Setting git safe.directory to /tmp/lint ..." git config --global --add safe.directory /tmp/lint +# Called by Auto-update CI job if [ "${UPGRADE_LINTERS_VERSION}" == "true" ]; then - echo "UPGRADING LINTER VERSION" + echo "[MegaLinter init] UPGRADING LINTER VERSION" + pip install pytest-cov pytest-timeout # Run only get_linter_version test methods pytest -v --durations=0 -k _get_linter_version megalinter/ # Run only get_linter_help test methods @@ -28,13 +36,14 @@ if [ "${UPGRADE_LINTERS_VERSION}" == "true" ]; then exit $? fi +# Run test cases with pytest if [ "${TEST_CASE_RUN}" == "true" ]; then - # Run test cases with pytest - echo "RUNNING TEST CASES" + echo "[MegaLinter init] RUNNING TEST CASES" + pip install pytest-cov pytest-timeout pytest-xdist if [ -z "${TEST_KEYWORDS}" ]; then - pytest -v --timeout=60 --durations=0 --cov=megalinter --cov-report=xml megalinter/ + pytest -v --timeout=300 --durations=0 --cov=megalinter --cov-report=xml megalinter/ else - pytest -v --timeout=60 --durations=0 -k "${TEST_KEYWORDS}" megalinter/ + pytest -v --timeout=300 --durations=0 -k "${TEST_KEYWORDS}" megalinter/ fi PYTEST_STATUS=$? echo Pytest exited $PYTEST_STATUS @@ -45,14 +54,48 @@ if [ "${TEST_CASE_RUN}" == "true" ]; then echo "Error(s) found by Pytest" exit 1 fi - # Upload to codecov.io - bash <(curl -s https://codecov.io/bash) + # Upload to codecov.io if all tests run + if [ -z "${TEST_KEYWORDS}" ]; then + bash <(curl -s https://codecov.io/bash) + exit $? + fi + exit $? +fi +if [ "${MEGALINTER_SERVER}" == "true" ]; then + # MegaLinter HTTP server run + set -eu + echo "[MegaLinter init] MEGALINTER SERVER" + python ./megalinter/megalinter_server.py else - # Normal run - LOG_LEVEL="${LOG_LEVEL:-INFO}" # Default log level (VERBOSE, DEBUG, TRACE) - if [[ ${LOG_LEVEL} == "DEBUG" ]]; then - printenv + if [ "${MEGALINTER_SSH}" == "true" ]; then + # MegaLinter SSH server + set -eu + SSH_VOLUME_FOLDER=/root/docker_ssh + if [ -d "$SSH_VOLUME_FOLDER" ]; then + # SSH key copy from local volume + echo "Docker ssh folder content:" + ls "$SSH_VOLUME_FOLDER" + mkdir ~/.ssh + chmod 700 ~/.ssh + touch ~/.ssh/authorized_keys + chmod 600 ~/.ssh/authorized_keys + cat $SSH_VOLUME_FOLDER/id_rsa.pub >>~/.ssh/authorized_keys + chmod 644 /root/.ssh/authorized_keys + mkdir -p /var/run/sshd + ssh-keygen -A + sed -i s/^#PasswordAuthentication\ yes/PasswordAuthentication\ no/ /etc/ssh/sshd_config + sed -i s/^#PermitRootLogin\ prohibit-password/PermitRootLogin\ yes/ /etc/ssh/sshd_config + sed -i s/^#PermitUserEnvironment\ no/PermitUserEnvironment\ yes/ /etc/ssh/sshd_config + echo "root:root" | chpasswd + fi + # SSH startup + echo "[MegaLinter init] SSH" + export -p >/var/ml-env-vars # save all environment variables configured during Dockerfile creation + /usr/sbin/sshd -D + else + # Normal (run megalinter) + echo "[MegaLinter init] ONE-SHOT RUN" + python -m megalinter.run fi - python -m megalinter.run fi diff --git a/flavors/ci_light/Dockerfile b/flavors/ci_light/Dockerfile index ac00971e4db..52837b47cee 100644 --- a/flavors/ci_light/Dockerfile +++ b/flavors/ci_light/Dockerfile @@ -13,12 +13,14 @@ #FROM__START FROM mvdan/shfmt:latest-alpine as shfmt FROM hadolint/hadolint:v2.10.0-alpine as hadolint +FROM zricethezav/gitleaks:v8.8.7 as gitleaks #FROM__END ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -35,51 +37,46 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START RUN apk add --update --no-cache \ + bash \ + go \ + openjdk11 \ libc-dev \ libxml2-dev \ libxml2-utils \ - libgcc + libgcc \ + npm \ + nodejs-current \ + yarn \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -98,18 +95,26 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ - dockerfilelint \ +WORKDIR /node-deps +RUN npm install --ignore-scripts \ npm-groovy-lint \ jsonlint \ eslint \ eslint-plugin-jsonc \ - v8r@0.6.1 \ - prettier + @microsoft/eslint-formatter-sarif \ + v8r \ + prettier \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -118,21 +123,15 @@ ENV PATH="/node_modules/.bin:${PATH}" ############################################################################################# #GEM__START - +RUN echo 'gem: --no-document' >> ~/.gemrc && \ + gem install \ + goodcheck #GEM__END ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START -# GIT installation -RUN git config --global core.autocrlf true - -# bash-exec installation -RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: File:[$1] is not executable"; exit 1; fi' > /usr/bin/bash-exec \ - && chmod +x /usr/bin/bash-exec - - # shellcheck installation RUN ML_THIRD_PARTY_DIR="/third-party/shellcheck" \ && mkdir -p ${ML_THIRD_PARTY_DIR} \ @@ -151,14 +150,16 @@ COPY --from=hadolint /bin/hadolint /usr/bin/hadolint # dotenv-linter installation RUN wget -q -O - https://raw.githubusercontent.com/dotenv-linter/dotenv-linter/master/install.sh | sh -s -#OTHER__END +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + +#OTHER__END ################################ # Installs python dependencies # @@ -204,8 +205,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/ci_light/action.yml b/flavors/ci_light/action.yml index 13222945fc9..5c3282da31a 100644 --- a/flavors/ci_light/action.yml +++ b/flavors/ci_light/action.yml @@ -7,7 +7,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter-ci_light:v5.17.0" + image: "docker://oxsecurity/megalinter-ci_light:beta" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/flavors/ci_light/flavor.json b/flavors/ci_light/flavor.json index c280bbeb740..b4a445c1a94 100644 --- a/flavors/ci_light/flavor.json +++ b/flavors/ci_light/flavor.json @@ -1,21 +1,23 @@ { "descriptors": [ - "GIT" + "BASH" ], "label": "Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML", "linters": [ - "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GROOVY_NPM_GROOVY_LINT", "JSON_JSONLINT", "JSON_ESLINT_PLUGIN_JSONC", "JSON_V8R", "JSON_PRETTIER", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_TRIVY", "XML_XMLLINT", "YAML_PRETTIER", "YAML_YAMLLINT", diff --git a/flavors/dart/flavor.json b/flavors/dart/flavor.json deleted file mode 100644 index f8050785cab..00000000000 --- a/flavors/dart/flavor.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "descriptors": [ - "GIT" - ], - "label": "Optimized for DART based projects", - "linters": [ - "ACTION_ACTIONLINT", - "ANSIBLE_ANSIBLE_LINT", - "BASH_EXEC", - "BASH_SHELLCHECK", - "BASH_SHFMT", - "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", - "CSS_STYLELINT", - "CSS_SCSS_LINT", - "DART_DARTANALYZER", - "DOCKERFILE_DOCKERFILELINT", - "DOCKERFILE_HADOLINT", - "EDITORCONFIG_EDITORCONFIG_CHECKER", - "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", - "GRAPHQL_GRAPHQL_SCHEMA_LINTER", - "GROOVY_NPM_GROOVY_LINT", - "HTML_HTMLHINT", - "JSON_JSONLINT", - "JSON_ESLINT_PLUGIN_JSONC", - "JSON_V8R", - "JSON_PRETTIER", - "KOTLIN_KTLINT", - "KUBERNETES_KUBEVAL", - "KUBERNETES_KUBECONFORM", - "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", - "MARKDOWN_MARKDOWN_LINK_CHECK", - "MARKDOWN_MARKDOWN_TABLE_FORMATTER", - "OPENAPI_SPECTRAL", - "PROTOBUF_PROTOLINT", - "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", - "SPELL_MISSPELL", - "SPELL_CSPELL", - "SQL_SQL_LINT", - "SQL_SQLFLUFF", - "TEKTON_TEKTON_LINT", - "XML_XMLLINT", - "YAML_PRETTIER", - "YAML_YAMLLINT", - "YAML_V8R" - ] -} diff --git a/flavors/documentation/Dockerfile b/flavors/documentation/Dockerfile index 1cb1c5ff0e1..1746f65031b 100644 --- a/flavors/documentation/Dockerfile +++ b/flavors/documentation/Dockerfile @@ -15,12 +15,14 @@ FROM mvdan/shfmt:latest-alpine as shfmt FROM hadolint/hadolint:v2.10.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker FROM yoheimuta/protolint:latest as protolint +FROM zricethezav/gitleaks:v8.8.7 as gitleaks #FROM__END ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -37,51 +39,47 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START RUN apk add --update --no-cache \ + go \ + bash \ + openjdk11 \ + nodejs \ + npm \ + yarn \ libc-dev \ libxml2-dev \ libxml2-utils \ - libgcc + libgcc \ + nodejs-current \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -89,8 +87,8 @@ RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin #PIP__START RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ 'ansible-lint==6.0.2' \ + 'semgrep' \ 'snakemake' \ - 'snakefmt' \ 'sqlfluff' \ 'yamllint' #PIP__END @@ -104,15 +102,13 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ +WORKDIR /node-deps +RUN npm install --ignore-scripts \ jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ stylelint \ stylelint-config-standard \ stylelint-config-sass-guidelines \ stylelint-scss \ - dockerfilelint \ graphql \ graphql-schema-linter \ npm-groovy-lint \ @@ -120,21 +116,27 @@ RUN npm install --no-cache --ignore-scripts \ jsonlint \ eslint \ eslint-plugin-jsonc \ - v8r@0.6.1 \ + @microsoft/eslint-formatter-sarif \ + v8r \ prettier \ markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ markdown-link-check \ markdown-table-formatter \ @stoplight/spectral@5.6.0 \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif \ cspell \ sql-lint \ - tekton-lint + tekton-lint && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -145,16 +147,14 @@ ENV PATH="/node_modules/.bin:${PATH}" #GEM__START RUN echo 'gem: --no-document' >> ~/.gemrc && \ gem install \ - scss_lint + scss_lint \ + goodcheck #GEM__END ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START -# GIT installation -RUN git config --global core.autocrlf true - # actionlint installation ENV GO111MODULE=on RUN go get github.com/rhysd/actionlint/cmd/actionlint @@ -213,6 +213,15 @@ RUN ML_THIRD_PARTY_DIR="/third-party/kubeconform" \ # protolint installation COPY --from=protolint /usr/local/bin/protolint /usr/bin/ +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + # misspell installation RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ && mkdir -p ${ML_THIRD_PARTY_DIR} \ @@ -224,13 +233,6 @@ RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -275,8 +277,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/documentation/action.yml b/flavors/documentation/action.yml index 14de1f293c2..c21ef371354 100644 --- a/flavors/documentation/action.yml +++ b/flavors/documentation/action.yml @@ -7,7 +7,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter-documentation:v5.17.0" + image: "docker://oxsecurity/megalinter-documentation:beta" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/flavors/documentation/flavor.json b/flavors/documentation/flavor.json index 9d178ec8002..a33368c9c83 100644 --- a/flavors/documentation/flavor.json +++ b/flavors/documentation/flavor.json @@ -1,6 +1,8 @@ { "descriptors": [ - "GIT" + "ACTION", + "BASH", + "KOTLIN" ], "label": "MegaLinter for documentation projects", "linters": [ @@ -10,14 +12,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -29,13 +28,17 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", diff --git a/flavors/dotnet/Dockerfile b/flavors/dotnet/Dockerfile index 7362a782d87..c79679827e3 100644 --- a/flavors/dotnet/Dockerfile +++ b/flavors/dotnet/Dockerfile @@ -15,12 +15,14 @@ FROM mvdan/shfmt:latest-alpine as shfmt FROM hadolint/hadolint:v2.10.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker FROM yoheimuta/protolint:latest as protolint +FROM zricethezav/gitleaks:v8.8.7 as gitleaks #FROM__END ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -42,54 +44,55 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START RUN apk add --update --no-cache \ + go \ + icu-libs \ + bash \ + libcurl \ + libintl \ + libssl1.1 \ + libstdc++ \ lttng-ust-dev \ zlib \ zlib-dev \ + openjdk11 \ + nodejs \ + npm \ + yarn \ libc-dev \ libxml2-dev \ libxml2-utils \ - libgcc + libgcc \ + nodejs-current \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -98,8 +101,8 @@ RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ 'ansible-lint==6.0.2' \ 'cpplint' \ + 'semgrep' \ 'snakemake' \ - 'snakefmt' \ 'sqlfluff' \ 'yamllint' #PIP__END @@ -113,15 +116,13 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ +WORKDIR /node-deps +RUN npm install --ignore-scripts \ jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ stylelint \ stylelint-config-standard \ stylelint-config-sass-guidelines \ stylelint-scss \ - dockerfilelint \ gherkin-lint \ graphql \ graphql-schema-linter \ @@ -130,21 +131,27 @@ RUN npm install --no-cache --ignore-scripts \ jsonlint \ eslint \ eslint-plugin-jsonc \ - v8r@0.6.1 \ + @microsoft/eslint-formatter-sarif \ + v8r \ prettier \ markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ markdown-link-check \ markdown-table-formatter \ @stoplight/spectral@5.6.0 \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif \ cspell \ sql-lint \ - tekton-lint + tekton-lint && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -155,24 +162,15 @@ ENV PATH="/node_modules/.bin:${PATH}" #GEM__START RUN echo 'gem: --no-document' >> ~/.gemrc && \ gem install \ - scss_lint + scss_lint \ + goodcheck #GEM__END ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START -# CSHARP installation -RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ - && chmod +x dotnet-install.sh \ - && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest - -ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" - -# GIT installation -RUN git config --global core.autocrlf true - -# POWERSHELL installation +# ARM installation RUN mkdir -p ${PWSH_DIRECTORY} \ && curl --retry 5 --retry-delay 5 -s https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ | grep browser_download_url \ @@ -183,6 +181,32 @@ RUN mkdir -p ${PWSH_DIRECTORY} \ && ln -sf ${PWSH_DIRECTORY}/pwsh /usr/bin/pwsh +# CSHARP installation +RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest + +ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" + +# POWERSHELL installation +# Next line commented because already managed by another linter +# RUN mkdir -p ${PWSH_DIRECTORY} \ +# && curl --retry 5 --retry-delay 5 -s https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ +# | grep browser_download_url \ +# | grep linux-alpine-x64 \ +# | cut -d '"' -f 4 \ +# | xargs -n 1 wget -O - \ +# | tar -xzC ${PWSH_DIRECTORY} \ +# && ln -sf ${PWSH_DIRECTORY}/pwsh /usr/bin/pwsh + +# VBDOTNET installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ +# && chmod +x dotnet-install.sh \ +# && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest +# Next line commented because already managed by another linter +# ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" + # actionlint installation ENV GO111MODULE=on RUN go get github.com/rhysd/actionlint/cmd/actionlint @@ -256,6 +280,15 @@ RUN pwsh -c 'Install-Module -Name PSScriptAnalyzer -RequiredVersion ${PSSA_VERSI # protolint installation COPY --from=protolint /usr/local/bin/protolint /usr/bin/ +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + # misspell installation RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ && mkdir -p ${ML_THIRD_PARTY_DIR} \ @@ -266,16 +299,19 @@ RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ # tsqllint installation +# Next line commented because already managed by another linter +# RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ +# && chmod +x dotnet-install.sh \ +# && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest +# Next line commented because already managed by another linter +# ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" RUN dotnet tool install --global TSQLLint -#OTHER__END +# dotnet-format installation +# Next line commented because already managed by another linter +# RUN /usr/share/dotnet/dotnet tool install -g dotnet-format -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#OTHER__END ################################ # Installs python dependencies # @@ -321,8 +357,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/dotnet/action.yml b/flavors/dotnet/action.yml index 1cf3dbe3664..ab1ca816465 100644 --- a/flavors/dotnet/action.yml +++ b/flavors/dotnet/action.yml @@ -7,7 +7,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter-dotnet:v5.17.0" + image: "docker://oxsecurity/megalinter-dotnet:beta" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/flavors/dotnet/flavor.json b/flavors/dotnet/flavor.json index fbe9c39c8ef..c5c4882f7ae 100644 --- a/flavors/dotnet/flavor.json +++ b/flavors/dotnet/flavor.json @@ -1,8 +1,12 @@ { "descriptors": [ + "ACTION", + "ARM", + "BASH", "CSHARP", - "GIT", - "POWERSHELL" + "KOTLIN", + "POWERSHELL", + "VBDOTNET" ], "label": "Optimized for C, C++, C# or VB based projects", "linters": [ @@ -15,16 +19,13 @@ "C_CPPLINT", "COPYPASTE_JSCPD", "CPP_CPPLINT", - "CREDENTIALS_SECRETLINT", "CSHARP_DOTNET_FORMAT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", "GHERKIN_GHERKIN_LINT", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -36,14 +37,18 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "POWERSHELL_POWERSHELL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", diff --git a/flavors/go/Dockerfile b/flavors/go/Dockerfile index 28472b08464..5bfb758b2cb 100644 --- a/flavors/go/Dockerfile +++ b/flavors/go/Dockerfile @@ -15,12 +15,14 @@ FROM mvdan/shfmt:latest-alpine as shfmt FROM hadolint/hadolint:v2.10.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker FROM yoheimuta/protolint:latest as protolint +FROM zricethezav/gitleaks:v8.8.7 as gitleaks #FROM__END ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -37,31 +39,16 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -69,20 +56,30 @@ RUN apk add --update --no-cache \ #APK__START RUN apk add --update --no-cache \ go \ + bash \ + openjdk11 \ + nodejs \ + npm \ + yarn \ libc-dev \ libxml2-dev \ libxml2-utils \ - libgcc + libgcc \ + nodejs-current \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -90,8 +87,8 @@ RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin #PIP__START RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ 'ansible-lint==6.0.2' \ + 'semgrep' \ 'snakemake' \ - 'snakefmt' \ 'sqlfluff' \ 'yamllint' #PIP__END @@ -105,15 +102,13 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ +WORKDIR /node-deps +RUN npm install --ignore-scripts \ jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ stylelint \ stylelint-config-standard \ stylelint-config-sass-guidelines \ stylelint-scss \ - dockerfilelint \ graphql \ graphql-schema-linter \ npm-groovy-lint \ @@ -121,21 +116,27 @@ RUN npm install --no-cache --ignore-scripts \ jsonlint \ eslint \ eslint-plugin-jsonc \ - v8r@0.6.1 \ + @microsoft/eslint-formatter-sarif \ + v8r \ prettier \ markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ markdown-link-check \ markdown-table-formatter \ @stoplight/spectral@5.6.0 \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif \ cspell \ sql-lint \ - tekton-lint + tekton-lint && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -146,16 +147,14 @@ ENV PATH="/node_modules/.bin:${PATH}" #GEM__START RUN echo 'gem: --no-document' >> ~/.gemrc && \ gem install \ - scss_lint + scss_lint \ + goodcheck #GEM__END ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START -# GIT installation -RUN git config --global core.autocrlf true - # actionlint installation ENV GO111MODULE=on RUN go get github.com/rhysd/actionlint/cmd/actionlint @@ -222,6 +221,15 @@ RUN ML_THIRD_PARTY_DIR="/third-party/kubeconform" \ # protolint installation COPY --from=protolint /usr/local/bin/protolint /usr/bin/ +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + # misspell installation RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ && mkdir -p ${ML_THIRD_PARTY_DIR} \ @@ -233,13 +241,6 @@ RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -284,8 +285,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/go/action.yml b/flavors/go/action.yml index b9d544ae9b4..f20d6adc4f3 100644 --- a/flavors/go/action.yml +++ b/flavors/go/action.yml @@ -7,7 +7,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter-go:v5.17.0" + image: "docker://oxsecurity/megalinter-go:beta" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/flavors/go/flavor.json b/flavors/go/flavor.json index 2fc70b013e7..1979e2644e0 100644 --- a/flavors/go/flavor.json +++ b/flavors/go/flavor.json @@ -1,7 +1,9 @@ { "descriptors": [ - "GIT", - "GO" + "ACTION", + "BASH", + "GO", + "KOTLIN" ], "label": "Optimized for GO based projects", "linters": [ @@ -11,14 +13,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GO_GOLANGCI_LINT", "GO_REVIVE", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", @@ -32,13 +31,17 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", diff --git a/flavors/java/Dockerfile b/flavors/java/Dockerfile index f7b2970ef6b..ae043e0c2da 100644 --- a/flavors/java/Dockerfile +++ b/flavors/java/Dockerfile @@ -16,12 +16,14 @@ FROM cljkondo/clj-kondo:2022.04.25-alpine as clj-kondo FROM hadolint/hadolint:v2.10.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker FROM yoheimuta/protolint:latest as protolint +FROM zricethezav/gitleaks:v8.8.7 as gitleaks #FROM__END ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -38,52 +40,47 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START RUN apk add --update --no-cache \ + go \ + bash \ openjdk11 \ + nodejs \ + npm \ + yarn \ libc-dev \ libxml2-dev \ libxml2-utils \ - libgcc + libgcc \ + nodejs-current \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -91,8 +88,8 @@ RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin #PIP__START RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ 'ansible-lint==6.0.2' \ + 'semgrep' \ 'snakemake' \ - 'snakefmt' \ 'sqlfluff' \ 'yamllint' #PIP__END @@ -106,15 +103,13 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ +WORKDIR /node-deps +RUN npm install --ignore-scripts \ jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ stylelint \ stylelint-config-standard \ stylelint-config-sass-guidelines \ stylelint-scss \ - dockerfilelint \ graphql \ graphql-schema-linter \ npm-groovy-lint \ @@ -122,21 +117,27 @@ RUN npm install --no-cache --ignore-scripts \ jsonlint \ eslint \ eslint-plugin-jsonc \ - v8r@0.6.1 \ + @microsoft/eslint-formatter-sarif \ + v8r \ prettier \ markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ markdown-link-check \ markdown-table-formatter \ @stoplight/spectral@5.6.0 \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif \ cspell \ sql-lint \ - tekton-lint + tekton-lint && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -147,16 +148,14 @@ ENV PATH="/node_modules/.bin:${PATH}" #GEM__START RUN echo 'gem: --no-document' >> ~/.gemrc && \ gem install \ - scss_lint + scss_lint \ + goodcheck #GEM__END ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START -# GIT installation -RUN git config --global core.autocrlf true - # JAVA installation ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk ENV PATH="$JAVA_HOME/bin:${PATH}" @@ -231,6 +230,15 @@ RUN ML_THIRD_PARTY_DIR="/third-party/kubeconform" \ # protolint installation COPY --from=protolint /usr/local/bin/protolint /usr/bin/ +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + # misspell installation RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ && mkdir -p ${ML_THIRD_PARTY_DIR} \ @@ -242,13 +250,6 @@ RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -293,8 +294,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/java/action.yml b/flavors/java/action.yml index d7bd36af66a..c9720c2ac3b 100644 --- a/flavors/java/action.yml +++ b/flavors/java/action.yml @@ -7,7 +7,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter-java:v5.17.0" + image: "docker://oxsecurity/megalinter-java:beta" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/flavors/java/flavor.json b/flavors/java/flavor.json index fc64ee67d08..3e5c701b56f 100644 --- a/flavors/java/flavor.json +++ b/flavors/java/flavor.json @@ -1,7 +1,9 @@ { "descriptors": [ - "GIT", - "JAVA" + "ACTION", + "BASH", + "JAVA", + "KOTLIN" ], "label": "Optimized for JAVA based projects", "linters": [ @@ -12,14 +14,11 @@ "BASH_SHFMT", "CLOJURE_CLJ_KONDO", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -32,13 +31,17 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", diff --git a/flavors/javascript/Dockerfile b/flavors/javascript/Dockerfile index b72c98fe586..2a67efb91c1 100644 --- a/flavors/javascript/Dockerfile +++ b/flavors/javascript/Dockerfile @@ -15,12 +15,14 @@ FROM mvdan/shfmt:latest-alpine as shfmt FROM hadolint/hadolint:v2.10.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker FROM yoheimuta/protolint:latest as protolint +FROM zricethezav/gitleaks:v8.8.7 as gitleaks #FROM__END ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -37,51 +39,47 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START RUN apk add --update --no-cache \ + go \ + bash \ + openjdk11 \ + nodejs \ + npm \ + yarn \ libc-dev \ libxml2-dev \ libxml2-utils \ - libgcc + libgcc \ + nodejs-current \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -89,8 +87,8 @@ RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin #PIP__START RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ 'ansible-lint==6.0.2' \ + 'semgrep' \ 'snakemake' \ - 'snakefmt' \ 'sqlfluff' \ 'yamllint' #PIP__END @@ -104,17 +102,15 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ +WORKDIR /node-deps +RUN npm install --ignore-scripts \ typescript \ @coffeelint/cli \ jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ stylelint \ stylelint-config-standard \ stylelint-config-sass-guidelines \ stylelint-scss \ - dockerfilelint \ graphql \ graphql-schema-linter \ npm-groovy-lint \ @@ -132,29 +128,35 @@ RUN npm install --no-cache --ignore-scripts \ babel-eslint \ @babel/core \ @babel/eslint-parser \ + @microsoft/eslint-formatter-sarif \ standard@15.0.1 \ prettier \ jsonlint \ eslint-plugin-jsonc \ - v8r@0.6.1 \ + v8r \ eslint-plugin-react \ eslint-plugin-jsx-a11y \ markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ markdown-link-check \ markdown-table-formatter \ @stoplight/spectral@5.6.0 \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif \ cspell \ sql-lint \ tekton-lint \ prettyjson \ @typescript-eslint/eslint-plugin \ - @typescript-eslint/parser + @typescript-eslint/parser && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -165,16 +167,14 @@ ENV PATH="/node_modules/.bin:${PATH}" #GEM__START RUN echo 'gem: --no-document' >> ~/.gemrc && \ gem install \ - scss_lint + scss_lint \ + goodcheck #GEM__END ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START -# GIT installation -RUN git config --global core.autocrlf true - # actionlint installation ENV GO111MODULE=on RUN go get github.com/rhysd/actionlint/cmd/actionlint @@ -233,6 +233,15 @@ RUN ML_THIRD_PARTY_DIR="/third-party/kubeconform" \ # protolint installation COPY --from=protolint /usr/local/bin/protolint /usr/bin/ +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + # misspell installation RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ && mkdir -p ${ML_THIRD_PARTY_DIR} \ @@ -244,13 +253,6 @@ RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -295,8 +297,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/javascript/action.yml b/flavors/javascript/action.yml index e7b84c21c5d..966912b7d6b 100644 --- a/flavors/javascript/action.yml +++ b/flavors/javascript/action.yml @@ -7,7 +7,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter-javascript:v5.17.0" + image: "docker://oxsecurity/megalinter-javascript:beta" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/flavors/javascript/flavor.json b/flavors/javascript/flavor.json index c69c037e5dd..1df582c7f10 100644 --- a/flavors/javascript/flavor.json +++ b/flavors/javascript/flavor.json @@ -1,6 +1,8 @@ { "descriptors": [ - "GIT", + "ACTION", + "BASH", + "KOTLIN", "TYPESCRIPT" ], "label": "Optimized for JAVASCRIPT or TYPESCRIPT based projects", @@ -12,14 +14,11 @@ "BASH_SHFMT", "COFFEE_COFFEELINT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -35,13 +34,17 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", diff --git a/flavors/php/Dockerfile b/flavors/php/Dockerfile index 2d3a092288a..aecdf73fcac 100644 --- a/flavors/php/Dockerfile +++ b/flavors/php/Dockerfile @@ -15,12 +15,14 @@ FROM mvdan/shfmt:latest-alpine as shfmt FROM hadolint/hadolint:v2.10.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker FROM yoheimuta/protolint:latest as protolint +FROM zricethezav/gitleaks:v8.8.7 as gitleaks #FROM__END ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -37,37 +39,26 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START RUN apk add --update --no-cache \ + go \ + bash \ + openjdk11 \ + gnupg \ php7 \ php7-phar \ php7-json \ @@ -89,20 +80,28 @@ RUN apk add --update --no-cache \ php8-simplexml \ composer \ dpkg \ + nodejs \ + npm \ + yarn \ libc-dev \ libxml2-dev \ libxml2-utils \ - libgcc + libgcc \ + nodejs-current \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -110,8 +109,8 @@ RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin #PIP__START RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ 'ansible-lint==6.0.2' \ + 'semgrep' \ 'snakemake' \ - 'snakefmt' \ 'sqlfluff' \ 'yamllint' #PIP__END @@ -125,15 +124,13 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ +WORKDIR /node-deps +RUN npm install --ignore-scripts \ jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ stylelint \ stylelint-config-standard \ stylelint-config-sass-guidelines \ stylelint-scss \ - dockerfilelint \ graphql \ graphql-schema-linter \ npm-groovy-lint \ @@ -141,21 +138,27 @@ RUN npm install --no-cache --ignore-scripts \ jsonlint \ eslint \ eslint-plugin-jsonc \ - v8r@0.6.1 \ + @microsoft/eslint-formatter-sarif \ + v8r \ prettier \ markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ markdown-link-check \ markdown-table-formatter \ @stoplight/spectral@5.6.0 \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif \ cspell \ sql-lint \ - tekton-lint + tekton-lint && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -166,16 +169,14 @@ ENV PATH="/node_modules/.bin:${PATH}" #GEM__START RUN echo 'gem: --no-document' >> ~/.gemrc && \ gem install \ - scss_lint + scss_lint \ + goodcheck #GEM__END ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START -# GIT installation -RUN git config --global core.autocrlf true - # PHP installation RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ && wget --tries=5 -q -O phive.phar.asc https://phar.io/releases/phive.phar.asc \ @@ -260,14 +261,26 @@ RUN phive --no-progress install psalm -g --trust-gpg-keys 8A03EA3B385DBAA1,12CE0 # phplint installation -RUN composer global require overtrue/phplint ^3.0 \ +RUN composer global require --ignore-platform-reqs overtrue/phplint ^3.0 \ && composer global config bin-dir --absolute -ENV PATH="/root/.composer/vendor/bin:$PATH" +RUN wget --tries=5 -q -O phplint.phar https://github.com/overtrue/phplint/releases/download/3.1.1/phplint.phar \ + && chmod +x phplint.phar \ + && mv phplint.phar /usr/local/bin/phplint + # protolint installation COPY --from=protolint /usr/local/bin/protolint /usr/bin/ +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + # misspell installation RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ && mkdir -p ${ML_THIRD_PARTY_DIR} \ @@ -279,13 +292,6 @@ RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -330,8 +336,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/php/action.yml b/flavors/php/action.yml index d075e8cc72c..d6edd5f638f 100644 --- a/flavors/php/action.yml +++ b/flavors/php/action.yml @@ -7,7 +7,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter-php:v5.17.0" + image: "docker://oxsecurity/megalinter-php:beta" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/flavors/php/flavor.json b/flavors/php/flavor.json index 9253b8fda07..3c86360f757 100644 --- a/flavors/php/flavor.json +++ b/flavors/php/flavor.json @@ -1,6 +1,8 @@ { "descriptors": [ - "GIT", + "ACTION", + "BASH", + "KOTLIN", "PHP" ], "label": "Optimized for PHP based projects", @@ -11,14 +13,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -30,18 +29,21 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", - "PHP_BUILTIN", "PHP_PHPCS", "PHP_PHPSTAN", "PHP_PSALM", "PHP_PHPLINT", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", diff --git a/flavors/python/Dockerfile b/flavors/python/Dockerfile index 306e5940599..424932dc1e5 100644 --- a/flavors/python/Dockerfile +++ b/flavors/python/Dockerfile @@ -15,12 +15,14 @@ FROM mvdan/shfmt:latest-alpine as shfmt FROM hadolint/hadolint:v2.10.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker FROM yoheimuta/protolint:latest as protolint +FROM zricethezav/gitleaks:v8.8.7 as gitleaks #FROM__END ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -37,51 +39,47 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START RUN apk add --update --no-cache \ + go \ + bash \ + openjdk11 \ + nodejs \ + npm \ + yarn \ libc-dev \ libxml2-dev \ libxml2-utils \ - libgcc + libgcc \ + nodejs-current \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -94,11 +92,12 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u 'flake8' \ 'isort' \ 'bandit' \ + 'bandit_sarif_formatter' \ 'mypy' \ + 'semgrep' \ 'restructuredtext_lint' \ 'rstcheck' \ 'snakemake' \ - 'snakefmt' \ 'sqlfluff' \ 'yamllint' #PIP__END @@ -112,15 +111,13 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ +WORKDIR /node-deps +RUN npm install --ignore-scripts \ jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ stylelint \ stylelint-config-standard \ stylelint-config-sass-guidelines \ stylelint-scss \ - dockerfilelint \ graphql \ graphql-schema-linter \ npm-groovy-lint \ @@ -128,21 +125,27 @@ RUN npm install --no-cache --ignore-scripts \ jsonlint \ eslint \ eslint-plugin-jsonc \ - v8r@0.6.1 \ + @microsoft/eslint-formatter-sarif \ + v8r \ prettier \ markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ markdown-link-check \ markdown-table-formatter \ @stoplight/spectral@5.6.0 \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif \ cspell \ sql-lint \ - tekton-lint + tekton-lint && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -153,16 +156,14 @@ ENV PATH="/node_modules/.bin:${PATH}" #GEM__START RUN echo 'gem: --no-document' >> ~/.gemrc && \ gem install \ - scss_lint + scss_lint \ + goodcheck #GEM__END ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START -# GIT installation -RUN git config --global core.autocrlf true - # actionlint installation ENV GO111MODULE=on RUN go get github.com/rhysd/actionlint/cmd/actionlint @@ -221,6 +222,15 @@ RUN ML_THIRD_PARTY_DIR="/third-party/kubeconform" \ # protolint installation COPY --from=protolint /usr/local/bin/protolint /usr/bin/ +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + # misspell installation RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ && mkdir -p ${ML_THIRD_PARTY_DIR} \ @@ -232,13 +242,6 @@ RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -283,8 +286,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/python/action.yml b/flavors/python/action.yml index f3b6d622745..a94a3c0ea1f 100644 --- a/flavors/python/action.yml +++ b/flavors/python/action.yml @@ -7,7 +7,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter-python:v5.17.0" + image: "docker://oxsecurity/megalinter-python:beta" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/flavors/python/flavor.json b/flavors/python/flavor.json index 555a431f2b6..f0496d6e571 100644 --- a/flavors/python/flavor.json +++ b/flavors/python/flavor.json @@ -1,6 +1,8 @@ { "descriptors": [ - "GIT" + "ACTION", + "BASH", + "KOTLIN" ], "label": "Optimized for PYTHON based projects", "linters": [ @@ -10,14 +12,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -29,7 +28,6 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", @@ -40,10 +38,15 @@ "PYTHON_ISORT", "PYTHON_BANDIT", "PYTHON_MYPY", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "RST_RST_LINT", "RST_RSTCHECK", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", diff --git a/flavors/ruby/Dockerfile b/flavors/ruby/Dockerfile index 5a8538283e9..e492a08360f 100644 --- a/flavors/ruby/Dockerfile +++ b/flavors/ruby/Dockerfile @@ -15,12 +15,14 @@ FROM mvdan/shfmt:latest-alpine as shfmt FROM hadolint/hadolint:v2.10.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker FROM yoheimuta/protolint:latest as protolint +FROM zricethezav/gitleaks:v8.8.7 as gitleaks #FROM__END ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -37,55 +39,47 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START RUN apk add --update --no-cache \ - ruby \ - ruby-dev \ - ruby-bundler \ - ruby-rdoc \ + go \ + bash \ + openjdk11 \ + nodejs \ + npm \ + yarn \ libc-dev \ libxml2-dev \ libxml2-utils \ - libgcc + libgcc \ + nodejs-current \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -93,8 +87,8 @@ RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin #PIP__START RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ 'ansible-lint==6.0.2' \ + 'semgrep' \ 'snakemake' \ - 'snakefmt' \ 'sqlfluff' \ 'yamllint' #PIP__END @@ -108,15 +102,13 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ +WORKDIR /node-deps +RUN npm install --ignore-scripts \ jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ stylelint \ stylelint-config-standard \ stylelint-config-sass-guidelines \ stylelint-scss \ - dockerfilelint \ graphql \ graphql-schema-linter \ npm-groovy-lint \ @@ -124,21 +116,27 @@ RUN npm install --no-cache --ignore-scripts \ jsonlint \ eslint \ eslint-plugin-jsonc \ - v8r@0.6.1 \ + @microsoft/eslint-formatter-sarif \ + v8r \ prettier \ markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ markdown-link-check \ markdown-table-formatter \ @stoplight/spectral@5.6.0 \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif \ cspell \ sql-lint \ - tekton-lint + tekton-lint && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -150,6 +148,7 @@ ENV PATH="/node_modules/.bin:${PATH}" RUN echo 'gem: --no-document' >> ~/.gemrc && \ gem install \ scss_lint \ + goodcheck \ rubocop \ rubocop-github \ rubocop-performance \ @@ -161,9 +160,6 @@ RUN echo 'gem: --no-document' >> ~/.gemrc && \ ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START -# GIT installation -RUN git config --global core.autocrlf true - # actionlint installation ENV GO111MODULE=on RUN go get github.com/rhysd/actionlint/cmd/actionlint @@ -222,6 +218,15 @@ RUN ML_THIRD_PARTY_DIR="/third-party/kubeconform" \ # protolint installation COPY --from=protolint /usr/local/bin/protolint /usr/bin/ +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + # misspell installation RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ && mkdir -p ${ML_THIRD_PARTY_DIR} \ @@ -233,13 +238,6 @@ RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -284,8 +282,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/ruby/action.yml b/flavors/ruby/action.yml index 9b46096e127..e4c74e09743 100644 --- a/flavors/ruby/action.yml +++ b/flavors/ruby/action.yml @@ -7,7 +7,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter-ruby:v5.17.0" + image: "docker://oxsecurity/megalinter-ruby:beta" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/flavors/ruby/flavor.json b/flavors/ruby/flavor.json index 0b0002f41f7..f35c645341b 100644 --- a/flavors/ruby/flavor.json +++ b/flavors/ruby/flavor.json @@ -1,7 +1,8 @@ { "descriptors": [ - "GIT", - "RUBY" + "ACTION", + "BASH", + "KOTLIN" ], "label": "Optimized for RUBY based projects", "linters": [ @@ -11,14 +12,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -30,14 +28,18 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "RUBY_RUBOCOP", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", diff --git a/flavors/rust/Dockerfile b/flavors/rust/Dockerfile index 24597d3b542..0ec8b73378c 100644 --- a/flavors/rust/Dockerfile +++ b/flavors/rust/Dockerfile @@ -15,12 +15,14 @@ FROM mvdan/shfmt:latest-alpine as shfmt FROM hadolint/hadolint:v2.10.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker FROM yoheimuta/protolint:latest as protolint +FROM zricethezav/gitleaks:v8.8.7 as gitleaks #FROM__END ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -37,51 +39,47 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START RUN apk add --update --no-cache \ + go \ + bash \ + openjdk11 \ + nodejs \ + npm \ + yarn \ libc-dev \ libxml2-dev \ libxml2-utils \ - libgcc + libgcc \ + nodejs-current \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -89,8 +87,8 @@ RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin #PIP__START RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ 'ansible-lint==6.0.2' \ + 'semgrep' \ 'snakemake' \ - 'snakefmt' \ 'sqlfluff' \ 'yamllint' #PIP__END @@ -104,15 +102,13 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ +WORKDIR /node-deps +RUN npm install --ignore-scripts \ jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ stylelint \ stylelint-config-standard \ stylelint-config-sass-guidelines \ stylelint-scss \ - dockerfilelint \ graphql \ graphql-schema-linter \ npm-groovy-lint \ @@ -120,21 +116,27 @@ RUN npm install --no-cache --ignore-scripts \ jsonlint \ eslint \ eslint-plugin-jsonc \ - v8r@0.6.1 \ + @microsoft/eslint-formatter-sarif \ + v8r \ prettier \ markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ markdown-link-check \ markdown-table-formatter \ @stoplight/spectral@5.6.0 \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif \ cspell \ sql-lint \ - tekton-lint + tekton-lint && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -145,16 +147,14 @@ ENV PATH="/node_modules/.bin:${PATH}" #GEM__START RUN echo 'gem: --no-document' >> ~/.gemrc && \ gem install \ - scss_lint + scss_lint \ + goodcheck #GEM__END ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START -# GIT installation -RUN git config --global core.autocrlf true - # RUST installation RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" @@ -217,6 +217,15 @@ RUN ML_THIRD_PARTY_DIR="/third-party/kubeconform" \ # protolint installation COPY --from=protolint /usr/local/bin/protolint /usr/bin/ +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + # clippy installation RUN rustup component add clippy @@ -231,13 +240,6 @@ RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -282,8 +284,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/rust/action.yml b/flavors/rust/action.yml index c26a8019ba4..9c50c486c80 100644 --- a/flavors/rust/action.yml +++ b/flavors/rust/action.yml @@ -7,7 +7,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter-rust:v5.17.0" + image: "docker://oxsecurity/megalinter-rust:beta" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/flavors/rust/flavor.json b/flavors/rust/flavor.json index fcdde988e67..fe119b0b2b7 100644 --- a/flavors/rust/flavor.json +++ b/flavors/rust/flavor.json @@ -1,6 +1,8 @@ { "descriptors": [ - "GIT", + "ACTION", + "BASH", + "KOTLIN", "RUST" ], "label": "Optimized for RUST based projects", @@ -11,14 +13,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -30,14 +29,18 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "RUST_CLIPPY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", diff --git a/flavors/salesforce/Dockerfile b/flavors/salesforce/Dockerfile index b92680c3061..75e50ec2bac 100644 --- a/flavors/salesforce/Dockerfile +++ b/flavors/salesforce/Dockerfile @@ -15,12 +15,14 @@ FROM mvdan/shfmt:latest-alpine as shfmt FROM hadolint/hadolint:v2.10.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker FROM yoheimuta/protolint:latest as protolint +FROM zricethezav/gitleaks:v8.8.7 as gitleaks #FROM__END ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -37,52 +39,47 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START RUN apk add --update --no-cache \ + go \ + bash \ openjdk11 \ + nodejs \ + npm \ + yarn \ libc-dev \ libxml2-dev \ libxml2-utils \ - libgcc + libgcc \ + nodejs-current \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -90,8 +87,8 @@ RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin #PIP__START RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ 'ansible-lint==6.0.2' \ + 'semgrep' \ 'snakemake' \ - 'snakefmt' \ 'sqlfluff' \ 'yamllint' #PIP__END @@ -105,16 +102,14 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ +WORKDIR /node-deps +RUN npm install --ignore-scripts \ sfdx-cli \ jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ stylelint \ stylelint-config-standard \ stylelint-config-sass-guidelines \ stylelint-scss \ - dockerfilelint \ graphql \ graphql-schema-linter \ npm-groovy-lint \ @@ -122,21 +117,27 @@ RUN npm install --no-cache --ignore-scripts \ jsonlint \ eslint \ eslint-plugin-jsonc \ - v8r@0.6.1 \ + @microsoft/eslint-formatter-sarif \ + v8r \ prettier \ markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ markdown-link-check \ markdown-table-formatter \ @stoplight/spectral@5.6.0 \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif \ cspell \ sql-lint \ - tekton-lint + tekton-lint && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -147,16 +148,14 @@ ENV PATH="/node_modules/.bin:${PATH}" #GEM__START RUN echo 'gem: --no-document' >> ~/.gemrc && \ gem install \ - scss_lint + scss_lint \ + goodcheck #GEM__END ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START -# GIT installation -RUN git config --global core.autocrlf true - # SALESFORCE installation ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk ENV PATH="$JAVA_HOME/bin:${PATH}" @@ -220,14 +219,25 @@ RUN ML_THIRD_PARTY_DIR="/third-party/kubeconform" \ # protolint installation COPY --from=protolint /usr/local/bin/protolint /usr/bin/ +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + # sfdx-scanner-apex installation RUN sfdx plugins:install @salesforce/sfdx-scanner # sfdx-scanner-aura installation -RUN sfdx plugins:install @salesforce/sfdx-scanner +# Next line commented because already managed by another linter +# RUN sfdx plugins:install @salesforce/sfdx-scanner # sfdx-scanner-lwc installation -RUN sfdx plugins:install @salesforce/sfdx-scanner +# Next line commented because already managed by another linter +# RUN sfdx plugins:install @salesforce/sfdx-scanner # misspell installation RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ @@ -240,13 +250,6 @@ RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -291,8 +294,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/salesforce/action.yml b/flavors/salesforce/action.yml index ac1f2a7982d..659474a44cc 100644 --- a/flavors/salesforce/action.yml +++ b/flavors/salesforce/action.yml @@ -7,7 +7,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter-salesforce:v5.17.0" + image: "docker://oxsecurity/megalinter-salesforce:beta" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/flavors/salesforce/flavor.json b/flavors/salesforce/flavor.json index bfdc6612f91..fe891f105a4 100644 --- a/flavors/salesforce/flavor.json +++ b/flavors/salesforce/flavor.json @@ -1,6 +1,8 @@ { "descriptors": [ - "GIT", + "ACTION", + "BASH", + "KOTLIN", "SALESFORCE" ], "label": "Optimized for Salesforce based projects", @@ -11,14 +13,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -30,16 +29,20 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SALESFORCE_SFDX_SCANNER_APEX", "SALESFORCE_SFDX_SCANNER_AURA", "SALESFORCE_SFDX_SCANNER_LWC", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", diff --git a/flavors/scala/action.yml b/flavors/scala/action.yml deleted file mode 100644 index 774fd425c50..00000000000 --- a/flavors/scala/action.yml +++ /dev/null @@ -1,16 +0,0 @@ - # Automatically @generated by build.py -name: "MegaLinter" -author: "Nicolas Vuillamy" -description: "[scala flavor] Combine all available linters to automatically validate your sources without configuration !" -outputs: - has_updated_sources: - description: "0 if no source file has been updated, 1 if source files has been updated" -runs: - using: "docker" - image: "docker://megalinter/megalinter-scala:v5.17.0" - args: - - "-v" - - "/var/run/docker.sock:/var/run/docker.sock:rw" -branding: - icon: "check" - color: "green" diff --git a/flavors/scala/flavor.json b/flavors/scala/flavor.json deleted file mode 100644 index bdd6b530ae9..00000000000 --- a/flavors/scala/flavor.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "descriptors": [ - "GIT", - "SCALA" - ], - "label": "Optimized for SCALA based projects", - "linters": [ - "ACTION_ACTIONLINT", - "ANSIBLE_ANSIBLE_LINT", - "BASH_EXEC", - "BASH_SHELLCHECK", - "BASH_SHFMT", - "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", - "CSS_STYLELINT", - "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", - "DOCKERFILE_HADOLINT", - "EDITORCONFIG_EDITORCONFIG_CHECKER", - "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", - "GRAPHQL_GRAPHQL_SCHEMA_LINTER", - "GROOVY_NPM_GROOVY_LINT", - "HTML_HTMLHINT", - "JSON_JSONLINT", - "JSON_ESLINT_PLUGIN_JSONC", - "JSON_V8R", - "JSON_PRETTIER", - "KOTLIN_KTLINT", - "KUBERNETES_KUBEVAL", - "KUBERNETES_KUBECONFORM", - "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", - "MARKDOWN_MARKDOWN_LINK_CHECK", - "MARKDOWN_MARKDOWN_TABLE_FORMATTER", - "OPENAPI_SPECTRAL", - "PROTOBUF_PROTOLINT", - "SCALA_SCALAFIX", - "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", - "SPELL_MISSPELL", - "SPELL_CSPELL", - "SQL_SQL_LINT", - "SQL_SQLFLUFF", - "TEKTON_TEKTON_LINT", - "XML_XMLLINT", - "YAML_PRETTIER", - "YAML_YAMLLINT", - "YAML_V8R" - ] -} diff --git a/flavors/scala/Dockerfile b/flavors/security/Dockerfile similarity index 63% rename from flavors/scala/Dockerfile rename to flavors/security/Dockerfile index 048b329fcf9..6c9529ffe53 100644 --- a/flavors/scala/Dockerfile +++ b/flavors/security/Dockerfile @@ -1,4 +1,4 @@ -# MEGA-LINTER FLAVOR [scala]: Optimized for SCALA based projects +# MEGA-LINTER FLAVOR [security]: Optimized for security ########################################### ########################################### ## Dockerfile to run MegaLinter ## @@ -11,16 +11,19 @@ ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #FROM__START -FROM mvdan/shfmt:latest-alpine as shfmt FROM hadolint/hadolint:v2.10.0-alpine as hadolint -FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker -FROM yoheimuta/protolint:latest as protolint +FROM zricethezav/gitleaks:v8.8.7 as gitleaks +FROM ghcr.io/terraform-linters/tflint:v0.35.0 as tflint +FROM tenable/terrascan:latest as terrascan +FROM alpine/terragrunt:latest as terragrunt +FROM checkmarx/kics:alpine as kics #FROM__END ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -37,51 +40,44 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START RUN apk add --update --no-cache \ - libc-dev \ - libxml2-dev \ - libxml2-utils \ - libgcc + icu-libs \ + libcurl \ + libintl \ + libssl1.1 \ + libstdc++ \ + lttng-ust-dev \ + zlib \ + zlib-dev \ + go \ + npm \ + nodejs-current \ + yarn #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -89,10 +85,10 @@ RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin #PIP__START RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ 'ansible-lint==6.0.2' \ - 'snakemake' \ - 'snakefmt' \ - 'sqlfluff' \ - 'yamllint' + 'cfn-lint' \ + 'bandit' \ + 'bandit_sarif_formatter' \ + 'semgrep' #PIP__END ############################ @@ -104,37 +100,19 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ - jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ - stylelint \ - stylelint-config-standard \ - stylelint-config-sass-guidelines \ - stylelint-scss \ - dockerfilelint \ - graphql \ - graphql-schema-linter \ - npm-groovy-lint \ - htmlhint \ - jsonlint \ - eslint \ - eslint-plugin-jsonc \ - v8r@0.6.1 \ - prettier \ - markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ - markdown-link-check \ - markdown-table-formatter \ - @stoplight/spectral@5.6.0 \ - cspell \ - sql-lint \ - tekton-lint +WORKDIR /node-deps +RUN npm install --ignore-scripts \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -143,27 +121,13 @@ ENV PATH="/node_modules/.bin:${PATH}" ############################################################################################# #GEM__START -RUN echo 'gem: --no-document' >> ~/.gemrc && \ - gem install \ - scss_lint + #GEM__END ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START -# GIT installation -RUN git config --global core.autocrlf true - -# SCALA installation -RUN curl -fLo coursier https://git.io/coursier-cli && \ - chmod +x coursier - - -# actionlint installation -ENV GO111MODULE=on -RUN go get github.com/rhysd/actionlint/cmd/actionlint - # bash-exec installation RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: File:[$1] is not executable"; exit 1; fi' > /usr/bin/bash-exec \ && chmod +x /usr/bin/bash-exec @@ -178,24 +142,9 @@ RUN ML_THIRD_PARTY_DIR="/third-party/shellcheck" \ && shellcheck --version -# shfmt installation -COPY --from=shfmt /bin/shfmt /usr/bin/ - # hadolint installation COPY --from=hadolint /bin/hadolint /usr/bin/hadolint -# editorconfig-checker installation -COPY --from=editorconfig-checker /usr/bin/ec /usr/bin/editorconfig-checker - -# dotenv-linter installation -RUN wget -q -O - https://raw.githubusercontent.com/dotenv-linter/dotenv-linter/master/install.sh | sh -s - -# ktlint installation -RUN curl --retry 5 --retry-delay 5 -sSLO https://github.com/pinterest/ktlint/releases/latest/download/ktlint && \ - chmod a+x ktlint && \ - mv "ktlint" /usr/bin/ - - # kubeval installation RUN ML_THIRD_PARTY_DIR="/third-party/kubeval" \ && mkdir -p ${ML_THIRD_PARTY_DIR} \ @@ -215,29 +164,58 @@ RUN ML_THIRD_PARTY_DIR="/third-party/kubeconform" \ && find ${ML_THIRD_PARTY_DIR} -type f -not -name 'LICENSE*' -delete -o -type d -empty -delete -# protolint installation -COPY --from=protolint /usr/local/bin/protolint /usr/bin/ +# devskim installation +RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest -# scalafix installation -RUN ./coursier install scalafix --quiet --install-dir /usr/bin +ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" +RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI -# misspell installation -RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ - && mkdir -p ${ML_THIRD_PARTY_DIR} \ - && curl -L -o ${ML_THIRD_PARTY_DIR}/install-misspell.sh https://git.io/misspell \ - && sh .${ML_THIRD_PARTY_DIR}/install-misspell.sh \ - && find ${ML_THIRD_PARTY_DIR} -type f -not -name 'LICENSE*' -delete -o -type d -empty -delete \ - && find /tmp -path '/tmp/tmp.*' -type f -name 'misspell*' -delete -o -type d -empty -delete +# dustilock installation +RUN ML_THIRD_PARTY_DIR=/download/dustilock && \ + mkdir -p ${ML_THIRD_PARTY_DIR} && \ + git clone https://github.com/Checkmarx/dustilock.git ${ML_THIRD_PARTY_DIR} && \ + cd ${ML_THIRD_PARTY_DIR} && \ + go build && \ + chmod +x dustilock && \ + mv "${ML_THIRD_PARTY_DIR}/dustilock" /usr/bin/ && \ + find ${ML_THIRD_PARTY_DIR} -type f -not -name 'LICENSE*' -delete -o -type d -empty -delete -#OTHER__END +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +# syft installation +RUN curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin + +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + +# tflint installation +COPY --from=tflint /usr/local/bin/tflint /usr/bin/ + +# terrascan installation +COPY --from=terrascan /go/bin/terrascan /usr/bin/ + +# terragrunt installation +COPY --from=terragrunt /usr/local/bin/terragrunt /usr/bin/ + +# checkov installation +RUN pip3 install --upgrade --no-cache-dir pip && pip3 install --upgrade --no-cache-dir setuptools \ + && pip3 install --no-cache-dir checkov + + +# kics installation +COPY --from=kics /app/bin/kics /usr/bin/ +RUN mkdir -p /opt/kics/assets +ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/assets/libraries +COPY --from=kics /app/bin/assets /opt/kics/assets/ + +#OTHER__END ################################ # Installs python dependencies # @@ -268,7 +246,7 @@ ENV BUILD_DATE=$BUILD_DATE \ BUILD_VERSION=$BUILD_VERSION #FLAVOR__START -ENV MEGALINTER_FLAVOR=scala +ENV MEGALINTER_FLAVOR=security #FLAVOR__END ######################################### @@ -283,8 +261,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/dart/action.yml b/flavors/security/action.yml similarity index 65% rename from flavors/dart/action.yml rename to flavors/security/action.yml index 38423c3e665..75cdc81db43 100644 --- a/flavors/dart/action.yml +++ b/flavors/security/action.yml @@ -1,13 +1,13 @@ # Automatically @generated by build.py name: "MegaLinter" author: "Nicolas Vuillamy" -description: "[dart flavor] Combine all available linters to automatically validate your sources without configuration !" +description: "[security flavor] Combine all available linters to automatically validate your sources without configuration !" outputs: has_updated_sources: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter-dart:v5.17.0" + image: "docker://oxsecurity/megalinter-security:beta" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/flavors/security/flavor.json b/flavors/security/flavor.json new file mode 100644 index 00000000000..96cc304b57e --- /dev/null +++ b/flavors/security/flavor.json @@ -0,0 +1,26 @@ +{ + "descriptors": [], + "label": "Optimized for security", + "linters": [ + "ANSIBLE_ANSIBLE_LINT", + "BASH_EXEC", + "BASH_SHELLCHECK", + "CLOUDFORMATION_CFN_LINT", + "DOCKERFILE_HADOLINT", + "KUBERNETES_KUBEVAL", + "KUBERNETES_KUBECONFORM", + "PYTHON_BANDIT", + "REPOSITORY_DEVSKIM", + "REPOSITORY_DUSTILOCK", + "REPOSITORY_GITLEAKS", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_SYFT", + "REPOSITORY_TRIVY", + "TERRAFORM_TFLINT", + "TERRAFORM_TERRASCAN", + "TERRAFORM_TERRAGRUNT", + "TERRAFORM_CHECKOV", + "TERRAFORM_KICS" + ] +} diff --git a/flavors/swift/Dockerfile b/flavors/swift/Dockerfile index 713d0cad46e..3bd5e2907d9 100644 --- a/flavors/swift/Dockerfile +++ b/flavors/swift/Dockerfile @@ -15,12 +15,14 @@ FROM mvdan/shfmt:latest-alpine as shfmt FROM hadolint/hadolint:v2.10.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker FROM yoheimuta/protolint:latest as protolint +FROM zricethezav/gitleaks:v8.8.7 as gitleaks #FROM__END ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -37,31 +39,16 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -70,20 +57,31 @@ RUN apk add --update --no-cache \ RUN apk add --update --no-cache \ docker \ openrc \ + go \ + bash \ + openjdk11 \ + nodejs \ + npm \ + yarn \ libc-dev \ libxml2-dev \ libxml2-utils \ - libgcc + libgcc \ + nodejs-current \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -91,8 +89,8 @@ RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin #PIP__START RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ 'ansible-lint==6.0.2' \ + 'semgrep' \ 'snakemake' \ - 'snakefmt' \ 'sqlfluff' \ 'yamllint' #PIP__END @@ -106,15 +104,13 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ +WORKDIR /node-deps +RUN npm install --ignore-scripts \ jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ stylelint \ stylelint-config-standard \ stylelint-config-sass-guidelines \ stylelint-scss \ - dockerfilelint \ graphql \ graphql-schema-linter \ npm-groovy-lint \ @@ -122,21 +118,27 @@ RUN npm install --no-cache --ignore-scripts \ jsonlint \ eslint \ eslint-plugin-jsonc \ - v8r@0.6.1 \ + @microsoft/eslint-formatter-sarif \ + v8r \ prettier \ markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ markdown-link-check \ markdown-table-formatter \ @stoplight/spectral@5.6.0 \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif \ cspell \ sql-lint \ - tekton-lint + tekton-lint && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -147,7 +149,8 @@ ENV PATH="/node_modules/.bin:${PATH}" #GEM__START RUN echo 'gem: --no-document' >> ~/.gemrc && \ gem install \ - scss_lint + scss_lint \ + goodcheck #GEM__END ############################################################################################# @@ -155,9 +158,6 @@ RUN echo 'gem: --no-document' >> ~/.gemrc && \ ############################################################################################# #OTHER__START RUN rc-update add docker boot && rc-service docker start || true -# GIT installation -RUN git config --global core.autocrlf true - # actionlint installation ENV GO111MODULE=on RUN go get github.com/rhysd/actionlint/cmd/actionlint @@ -216,6 +216,15 @@ RUN ML_THIRD_PARTY_DIR="/third-party/kubeconform" \ # protolint installation COPY --from=protolint /usr/local/bin/protolint /usr/bin/ +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + # misspell installation RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ && mkdir -p ${ML_THIRD_PARTY_DIR} \ @@ -227,13 +236,6 @@ RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -278,8 +280,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/swift/action.yml b/flavors/swift/action.yml index 4bc2ada6dce..f1defbfb6dc 100644 --- a/flavors/swift/action.yml +++ b/flavors/swift/action.yml @@ -7,7 +7,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter-swift:v5.17.0" + image: "docker://oxsecurity/megalinter-swift:beta" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/flavors/swift/flavor.json b/flavors/swift/flavor.json index 13896fe4693..3ccc29a0444 100644 --- a/flavors/swift/flavor.json +++ b/flavors/swift/flavor.json @@ -1,6 +1,8 @@ { "descriptors": [ - "GIT" + "ACTION", + "BASH", + "KOTLIN" ], "label": "Optimized for SWIFT based projects", "linters": [ @@ -10,14 +12,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -29,13 +28,17 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", diff --git a/flavors/terraform/Dockerfile b/flavors/terraform/Dockerfile index c28ed5b7736..c1fb3544f75 100644 --- a/flavors/terraform/Dockerfile +++ b/flavors/terraform/Dockerfile @@ -15,8 +15,9 @@ FROM mvdan/shfmt:latest-alpine as shfmt FROM hadolint/hadolint:v2.10.0-alpine as hadolint FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker FROM yoheimuta/protolint:latest as protolint +FROM zricethezav/gitleaks:v8.8.7 as gitleaks FROM ghcr.io/terraform-linters/tflint:v0.35.0 as tflint -FROM accurics/terrascan:latest as terrascan +FROM tenable/terrascan:latest as terrascan FROM alpine/terragrunt:latest as terragrunt FROM checkmarx/kics:alpine as kics #FROM__END @@ -24,7 +25,8 @@ FROM checkmarx/kics:alpine as kics ################## # Get base image # ################## -FROM python:3.9.7-alpine3.13 +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -41,51 +43,47 @@ WORKDIR / # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START RUN apk add --update --no-cache \ + go \ + bash \ + openjdk11 \ + nodejs \ + npm \ + yarn \ libc-dev \ libxml2-dev \ libxml2-utils \ - libgcc + libgcc \ + nodejs-current \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## @@ -93,8 +91,8 @@ RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin #PIP__START RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ 'ansible-lint==6.0.2' \ + 'semgrep' \ 'snakemake' \ - 'snakefmt' \ 'sqlfluff' \ 'yamllint' #PIP__END @@ -108,15 +106,13 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile ENV NODE_OPTIONS="--max-old-space-size=8192" #NPM__START -RUN npm install --no-cache --ignore-scripts \ +WORKDIR /node-deps +RUN npm install --ignore-scripts \ jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ stylelint \ stylelint-config-standard \ stylelint-config-sass-guidelines \ stylelint-scss \ - dockerfilelint \ graphql \ graphql-schema-linter \ npm-groovy-lint \ @@ -124,21 +120,27 @@ RUN npm install --no-cache --ignore-scripts \ jsonlint \ eslint \ eslint-plugin-jsonc \ - v8r@0.6.1 \ + @microsoft/eslint-formatter-sarif \ + v8r \ prettier \ markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ markdown-link-check \ markdown-table-formatter \ @stoplight/spectral@5.6.0 \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif \ cspell \ sql-lint \ - tekton-lint + tekton-lint && \ + npm audit fix --audit-level=critical || true +WORKDIR / + #NPM__END # Add node packages to path # -ENV PATH="/node_modules/.bin:${PATH}" +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" ############################## # Installs ruby dependencies # @@ -149,16 +151,14 @@ ENV PATH="/node_modules/.bin:${PATH}" #GEM__START RUN echo 'gem: --no-document' >> ~/.gemrc && \ gem install \ - scss_lint + scss_lint \ + goodcheck #GEM__END ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START -# GIT installation -RUN git config --global core.autocrlf true - # actionlint installation ENV GO111MODULE=on RUN go get github.com/rhysd/actionlint/cmd/actionlint @@ -217,6 +217,15 @@ RUN ML_THIRD_PARTY_DIR="/third-party/kubeconform" \ # protolint installation COPY --from=protolint /usr/local/bin/protolint /usr/bin/ +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + # misspell installation RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ && mkdir -p ${ML_THIRD_PARTY_DIR} \ @@ -251,13 +260,6 @@ COPY --from=kics /app/bin/assets /opt/kics/assets/ #OTHER__END -###################### -# Set the entrypoint # -###################### -COPY entrypoint.sh /entrypoint.sh -RUN chmod +x entrypoint.sh -ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] - ################################ # Installs python dependencies # ################################ @@ -302,8 +304,14 @@ LABEL com.github.actions.name="MegaLinter" \ org.opencontainers.image.revision=$BUILD_REVISION \ org.opencontainers.image.version=$BUILD_VERSION \ org.opencontainers.image.authors="Nicolas Vuillamy " \ - org.opencontainers.image.url="https://megalinter.github.io" \ - org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ - org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ org.opencontainers.image.vendor="Nicolas Vuillamy" \ org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/flavors/terraform/action.yml b/flavors/terraform/action.yml index 5544c8f2b71..54ee6b22b50 100644 --- a/flavors/terraform/action.yml +++ b/flavors/terraform/action.yml @@ -7,7 +7,7 @@ outputs: description: "0 if no source file has been updated, 1 if source files has been updated" runs: using: "docker" - image: "docker://megalinter/megalinter-terraform:v5.17.0" + image: "docker://oxsecurity/megalinter-terraform:beta" args: - "-v" - "/var/run/docker.sock:/var/run/docker.sock:rw" diff --git a/flavors/terraform/flavor.json b/flavors/terraform/flavor.json index 8f35f0879ff..204536bca06 100644 --- a/flavors/terraform/flavor.json +++ b/flavors/terraform/flavor.json @@ -1,6 +1,8 @@ { "descriptors": [ - "GIT" + "ACTION", + "BASH", + "KOTLIN" ], "label": "Optimized for TERRAFORM based projects", "linters": [ @@ -10,14 +12,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -29,13 +28,17 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", diff --git a/linters/action_actionlint/Dockerfile b/linters/action_actionlint/Dockerfile new file mode 100644 index 00000000000..9ae589afd15 --- /dev/null +++ b/linters/action_actionlint/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + go +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# actionlint installation +ENV GO111MODULE=on +RUN go get github.com/rhysd/actionlint/cmd/actionlint + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=ACTION_ACTIONLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=ACTION_ACTIONLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/ansible_ansible_lint/Dockerfile b/linters/ansible_ansible_lint/Dockerfile new file mode 100644 index 00000000000..c93d5b813c8 --- /dev/null +++ b/linters/ansible_ansible_lint/Dockerfile @@ -0,0 +1,175 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'ansible' \ + 'ansible-lint[yamllint]' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=ANSIBLE_ANSIBLE_LINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=ANSIBLE_ANSIBLE_LINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/arm_arm_ttk/Dockerfile b/linters/arm_arm_ttk/Dockerfile new file mode 100644 index 00000000000..537932a6429 --- /dev/null +++ b/linters/arm_arm_ttk/Dockerfile @@ -0,0 +1,197 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START +ARG PWSH_VERSION='latest' +ARG PWSH_DIRECTORY='/opt/microsoft/powershell' +ARG ARM_TTK_NAME='master.zip' +ARG ARM_TTK_URI='https://github.com/Azure/arm-ttk/archive/master.zip' +ARG ARM_TTK_DIRECTORY='/opt/microsoft' +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + icu-libs +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# ARM installation +RUN mkdir -p ${PWSH_DIRECTORY} \ + && curl --retry 5 --retry-delay 5 -s https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ + | grep browser_download_url \ + | grep linux-alpine-x64 \ + | cut -d '"' -f 4 \ + | xargs -n 1 wget -O - \ + | tar -xzC ${PWSH_DIRECTORY} \ + && ln -sf ${PWSH_DIRECTORY}/pwsh /usr/bin/pwsh + + +# arm-ttk installation +ENV ARM_TTK_PSD1="${ARM_TTK_DIRECTORY}/arm-ttk-master/arm-ttk/arm-ttk.psd1" +RUN curl --retry 5 --retry-delay 5 -sLO "${ARM_TTK_URI}" \ + && unzip "${ARM_TTK_NAME}" -d "${ARM_TTK_DIRECTORY}" \ + && rm "${ARM_TTK_NAME}" \ + && ln -sTf "${ARM_TTK_PSD1}" /usr/bin/arm-ttk \ + && chmod a+x /usr/bin/arm-ttk + + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=ARM_ARM_TTK \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=ARM_ARM_TTK \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/bash_exec/Dockerfile b/linters/bash_exec/Dockerfile new file mode 100644 index 00000000000..0e081da4862 --- /dev/null +++ b/linters/bash_exec/Dockerfile @@ -0,0 +1,178 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + bash +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# bash-exec installation +RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: File:[$1] is not executable"; exit 1; fi' > /usr/bin/bash-exec \ + && chmod +x /usr/bin/bash-exec + + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=BASH_EXEC \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=BASH_EXEC \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/bash_shellcheck/Dockerfile b/linters/bash_shellcheck/Dockerfile new file mode 100644 index 00000000000..9d4c7cf0ea4 --- /dev/null +++ b/linters/bash_shellcheck/Dockerfile @@ -0,0 +1,179 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + bash +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# shellcheck installation +RUN wget -qO- "https://github.com/koalaman/shellcheck/releases/download/stable/shellcheck-stable.linux.x86_64.tar.xz" | tar -xJv \ + && cp "shellcheck-stable/shellcheck" /usr/bin/ \ + && shellcheck --version + + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=BASH_SHELLCHECK \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=BASH_SHELLCHECK \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/bash_shfmt/Dockerfile b/linters/bash_shfmt/Dockerfile new file mode 100644 index 00000000000..1ca8f576a88 --- /dev/null +++ b/linters/bash_shfmt/Dockerfile @@ -0,0 +1,178 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + bash \ + go +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# shfmt installation +ENV GO111MODULE=on +RUN go get mvdan.cc/sh/v3/cmd/shfmt@v3.3.1 + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=BASH_SHFMT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=BASH_SHFMT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/c_cpplint/Dockerfile b/linters/c_cpplint/Dockerfile new file mode 100644 index 00000000000..a557ee8def6 --- /dev/null +++ b/linters/c_cpplint/Dockerfile @@ -0,0 +1,174 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'cpplint' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=C_CPPLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=C_CPPLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/clojure_clj_kondo/Dockerfile b/linters/clojure_clj_kondo/Dockerfile new file mode 100644 index 00000000000..180674adf32 --- /dev/null +++ b/linters/clojure_clj_kondo/Dockerfile @@ -0,0 +1,175 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START +FROM cljkondo/clj-kondo:2021.06.18-alpine as clj-kondo +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# clj-kondo installation +COPY --from=clj-kondo /bin/clj-kondo /usr/bin/ + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=CLOJURE_CLJ_KONDO \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=CLOJURE_CLJ_KONDO \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/cloudformation_cfn_lint/Dockerfile b/linters/cloudformation_cfn_lint/Dockerfile new file mode 100644 index 00000000000..0d268e9ceeb --- /dev/null +++ b/linters/cloudformation_cfn_lint/Dockerfile @@ -0,0 +1,184 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ + 'cfn-lint' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=CLOUDFORMATION_CFN_LINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=CLOUDFORMATION_CFN_LINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/coffee_coffeelint/Dockerfile b/linters/coffee_coffeelint/Dockerfile new file mode 100644 index 00000000000..8df336a599d --- /dev/null +++ b/linters/coffee_coffeelint/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + @coffeelint/cli +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=COFFEE_COFFEELINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=COFFEE_COFFEELINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/copypaste_jscpd/Dockerfile b/linters/copypaste_jscpd/Dockerfile new file mode 100644 index 00000000000..ee3a7542e7f --- /dev/null +++ b/linters/copypaste_jscpd/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + jscpd@3.3.26 +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=COPYPASTE_JSCPD \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=COPYPASTE_JSCPD \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/cpp_cpplint/Dockerfile b/linters/cpp_cpplint/Dockerfile new file mode 100644 index 00000000000..496dc44e649 --- /dev/null +++ b/linters/cpp_cpplint/Dockerfile @@ -0,0 +1,174 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'cpplint' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=CPP_CPPLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=CPP_CPPLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/csharp_dotnet_format/Dockerfile b/linters/csharp_dotnet_format/Dockerfile new file mode 100644 index 00000000000..47b37b17dd7 --- /dev/null +++ b/linters/csharp_dotnet_format/Dockerfile @@ -0,0 +1,190 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + icu-libs \ + libcurl \ + libintl \ + libssl1.1 \ + libstdc++ \ + lttng-ust-dev \ + zlib \ + zlib-dev +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# CSHARP installation +RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest + +ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" + +# dotnet-format installation +RUN /usr/share/dotnet/dotnet tool install -g dotnet-format + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=CSHARP_DOTNET_FORMAT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=CSHARP_DOTNET_FORMAT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/css_scss_lint/Dockerfile b/linters/css_scss_lint/Dockerfile new file mode 100644 index 00000000000..48505d9f474 --- /dev/null +++ b/linters/css_scss_lint/Dockerfile @@ -0,0 +1,179 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START +RUN echo 'gem: --no-document' >> ~/.gemrc && \ + gem install \ + scss_lint +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=CSS_SCSS_LINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=CSS_SCSS_LINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/css_stylelint/Dockerfile b/linters/css_stylelint/Dockerfile new file mode 100644 index 00000000000..0aab923d1d2 --- /dev/null +++ b/linters/css_stylelint/Dockerfile @@ -0,0 +1,180 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + stylelint \ + stylelint-config-standard \ + stylelint-config-sass-guidelines \ + stylelint-scss +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=CSS_STYLELINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=CSS_STYLELINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/flavors/dart/Dockerfile b/linters/dart_dartanalyzer/Dockerfile similarity index 51% rename from flavors/dart/Dockerfile rename to linters/dart_dartanalyzer/Dockerfile index 3a5c3772e3d..f6d49d7670b 100644 --- a/flavors/dart/Dockerfile +++ b/linters/dart_dartanalyzer/Dockerfile @@ -1,4 +1,3 @@ -# MEGA-LINTER FLAVOR [dart]: Optimized for DART based projects ########################################### ########################################### ## Dockerfile to run MegaLinter ## @@ -11,10 +10,7 @@ ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #FROM__START -FROM mvdan/shfmt:latest-alpine as shfmt -FROM hadolint/hadolint:v2.10.0-alpine as hadolint -FROM mstruebing/editorconfig-checker:2.4.0 as editorconfig-checker -FROM yoheimuta/protolint:latest as protolint + #FROM__END ################## @@ -34,66 +30,39 @@ ARG GLIBC_VERSION='2.31-r0' # Run APK installs # #################### -WORKDIR / - # APK Packages used by mega-linter core architecture RUN apk add --update --no-cache \ - bash \ - ca-certificates \ - coreutils \ - curl \ - file \ - gcc \ - git git-lfs\ - go \ - gnupg \ - icu-libs \ - krb5-libs \ - libcurl libintl libssl1.1 libstdc++ \ - libffi-dev \ - linux-headers \ - make \ - musl-dev \ - openjdk11 \ - openssh \ - npm \ - nodejs \ - py3-setuptools \ - readline-dev \ - ruby-bundler \ - ruby-dev \ - yarn + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #APK__START -RUN apk add --update --no-cache \ - libc-dev \ - libxml2-dev \ - libxml2-utils \ - libgcc + #APK__END -# Ignore npm package issues -RUN yarn config set ignore-engines true # PATH for golang -ENV GOROOT=/usr/lib/go -ENV GOPATH=/go +ENV GOROOT=/usr/lib/go \ + GOPATH=/go # hadolint ignore=DL3044 ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin -RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #PIP__START -RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ - 'ansible-lint==6.0.2' \ - 'snakemake' \ - 'snakefmt' \ - 'sqlfluff' \ - 'yamllint' + #PIP__END ############################ @@ -103,35 +72,12 @@ RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --u ############################################################################################# # Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile -ENV NODE_OPTIONS="--max-old-space-size=8192" +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + #NPM__START -RUN npm install --no-cache --ignore-scripts \ - jscpd@3.3.26 \ - secretlint@4.1.0 \ - @secretlint/secretlint-rule-preset-recommend@4.1.0 \ - stylelint \ - stylelint-config-standard \ - stylelint-config-sass-guidelines \ - stylelint-scss \ - dockerfilelint \ - graphql \ - graphql-schema-linter \ - npm-groovy-lint \ - htmlhint \ - jsonlint \ - eslint \ - eslint-plugin-jsonc \ - v8r@0.6.1 \ - prettier \ - markdownlint-cli \ - remark-cli \ - remark-preset-lint-recommended \ - markdown-link-check \ - markdown-table-formatter \ - @stoplight/spectral@5.6.0 \ - cspell \ - sql-lint \ - tekton-lint + #NPM__END # Add node packages to path # @@ -144,41 +90,15 @@ ENV PATH="/node_modules/.bin:${PATH}" ############################################################################################# #GEM__START -RUN echo 'gem: --no-document' >> ~/.gemrc && \ - gem install \ - scss_lint + #GEM__END ############################################################################################# ## @generated by .automation/build.py using descriptor files, please do not update manually ## ############################################################################################# #OTHER__START -# GIT installation -RUN git config --global core.autocrlf true - -# actionlint installation -ENV GO111MODULE=on -RUN go get github.com/rhysd/actionlint/cmd/actionlint - -# bash-exec installation -RUN printf '#!/bin/bash \n\nif [[ -x "$1" ]]; then exit 0; else echo "Error: File:[$1] is not executable"; exit 1; fi' > /usr/bin/bash-exec \ - && chmod +x /usr/bin/bash-exec - - -# shellcheck installation -RUN ML_THIRD_PARTY_DIR="/third-party/shellcheck" \ - && mkdir -p ${ML_THIRD_PARTY_DIR} \ - && wget -qO- "https://github.com/koalaman/shellcheck/releases/download/stable/shellcheck-stable.linux.x86_64.tar.xz" | tar -xJv --directory ${ML_THIRD_PARTY_DIR} \ - && mv "${ML_THIRD_PARTY_DIR}/shellcheck-stable/shellcheck" /usr/bin/ \ - && find ${ML_THIRD_PARTY_DIR} -type f -not -name 'LICENSE*' -delete -o -type d -empty -delete \ - && shellcheck --version - - -# shfmt installation -COPY --from=shfmt /bin/shfmt /usr/bin/ - # dartanalyzer installation -RUN wget --tries=5 -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \ +RUN wget --tries=50 -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \ && wget --tries=5 -q https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk \ && apk add --no-cache glibc-${GLIBC_VERSION}.apk && rm glibc-${GLIBC_VERSION}.apk \ && wget --tries=5 https://storage.googleapis.com/dart-archive/channels/stable/release/${DART_VERSION}/sdk/dartsdk-linux-x64-release.zip -O - -q | unzip -q - \ @@ -187,52 +107,6 @@ RUN wget --tries=5 -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sger && rm -r dart-sdk/ -# hadolint installation -COPY --from=hadolint /bin/hadolint /usr/bin/hadolint - -# editorconfig-checker installation -COPY --from=editorconfig-checker /usr/bin/ec /usr/bin/editorconfig-checker - -# dotenv-linter installation -RUN wget -q -O - https://raw.githubusercontent.com/dotenv-linter/dotenv-linter/master/install.sh | sh -s - -# ktlint installation -RUN curl --retry 5 --retry-delay 5 -sSLO https://github.com/pinterest/ktlint/releases/latest/download/ktlint && \ - chmod a+x ktlint && \ - mv "ktlint" /usr/bin/ - - -# kubeval installation -RUN ML_THIRD_PARTY_DIR="/third-party/kubeval" \ - && mkdir -p ${ML_THIRD_PARTY_DIR} \ - && wget -P ${ML_THIRD_PARTY_DIR} -q https://github.com/instrumenta/kubeval/releases/latest/download/kubeval-linux-amd64.tar.gz \ - && tar xf ${ML_THIRD_PARTY_DIR}/kubeval-linux-amd64.tar.gz --directory ${ML_THIRD_PARTY_DIR} \ - && mv ${ML_THIRD_PARTY_DIR}/kubeval /usr/local/bin \ - && find ${ML_THIRD_PARTY_DIR} -type f -not -name 'LICENSE*' -delete -o -type d -empty -delete - - -# kubeconform installation -RUN ML_THIRD_PARTY_DIR="/third-party/kubeconform" \ - && KUBECONFORM_VERSION=v0.4.12 \ - && mkdir -p ${ML_THIRD_PARTY_DIR} \ - && wget -P ${ML_THIRD_PARTY_DIR} -q https://github.com/yannh/kubeconform/releases/download/$KUBECONFORM_VERSION/kubeconform-linux-amd64.tar.gz \ - && tar xf ${ML_THIRD_PARTY_DIR}/kubeconform-linux-amd64.tar.gz --directory ${ML_THIRD_PARTY_DIR} \ - && mv ${ML_THIRD_PARTY_DIR}/kubeconform /usr/local/bin \ - && find ${ML_THIRD_PARTY_DIR} -type f -not -name 'LICENSE*' -delete -o -type d -empty -delete - - -# protolint installation -COPY --from=protolint /usr/local/bin/protolint /usr/bin/ - -# misspell installation -RUN ML_THIRD_PARTY_DIR="/third-party/misspell" \ - && mkdir -p ${ML_THIRD_PARTY_DIR} \ - && curl -L -o ${ML_THIRD_PARTY_DIR}/install-misspell.sh https://git.io/misspell \ - && sh .${ML_THIRD_PARTY_DIR}/install-misspell.sh \ - && find ${ML_THIRD_PARTY_DIR} -type f -not -name 'LICENSE*' -delete -o -type d -empty -delete \ - && find /tmp -path '/tmp/tmp.*' -type f -name 'misspell*' -delete -o -type d -empty -delete - - #OTHER__END ###################### @@ -271,9 +145,25 @@ ENV BUILD_DATE=$BUILD_DATE \ BUILD_VERSION=$BUILD_VERSION #FLAVOR__START -ENV MEGALINTER_FLAVOR=dart +ENV MEGALINTER_FLAVOR=none #FLAVOR__END +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=DART_DARTANALYZER \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=DART_DARTANALYZER \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + ######################################### # Label the instance and set maintainer # ######################################### diff --git a/linters/dockerfile_hadolint/Dockerfile b/linters/dockerfile_hadolint/Dockerfile new file mode 100644 index 00000000000..7fe09112407 --- /dev/null +++ b/linters/dockerfile_hadolint/Dockerfile @@ -0,0 +1,185 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START +FROM hadolint/hadolint:v2.10.0-alpine as hadolint +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# hadolint installation +COPY --from=hadolint /bin/hadolint /usr/bin/hadolint + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=DOCKERFILE_HADOLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=DOCKERFILE_HADOLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/editorconfig_editorconfig_checker/Dockerfile b/linters/editorconfig_editorconfig_checker/Dockerfile new file mode 100644 index 00000000000..2314b0963a0 --- /dev/null +++ b/linters/editorconfig_editorconfig_checker/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + editorconfig-checker +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=EDITORCONFIG_EDITORCONFIG_CHECKER \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=EDITORCONFIG_EDITORCONFIG_CHECKER \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/env_dotenv_linter/Dockerfile b/linters/env_dotenv_linter/Dockerfile new file mode 100644 index 00000000000..542ff9ad388 --- /dev/null +++ b/linters/env_dotenv_linter/Dockerfile @@ -0,0 +1,175 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# dotenv-linter installation +RUN wget -q -O - https://raw.githubusercontent.com/dotenv-linter/dotenv-linter/master/install.sh | sh -s + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=ENV_DOTENV_LINTER \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=ENV_DOTENV_LINTER \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/gherkin_gherkin_lint/Dockerfile b/linters/gherkin_gherkin_lint/Dockerfile new file mode 100644 index 00000000000..fee121810bb --- /dev/null +++ b/linters/gherkin_gherkin_lint/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + gherkin-lint +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=GHERKIN_GHERKIN_LINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=GHERKIN_GHERKIN_LINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/go_golangci_lint/Dockerfile b/linters/go_golangci_lint/Dockerfile new file mode 100644 index 00000000000..7877275c3c5 --- /dev/null +++ b/linters/go_golangci_lint/Dockerfile @@ -0,0 +1,178 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + go +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# golangci-lint installation +RUN wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh \ + && golangci-lint --version + + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=GO_GOLANGCI_LINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=GO_GOLANGCI_LINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/go_revive/Dockerfile b/linters/go_revive/Dockerfile new file mode 100644 index 00000000000..9774addf212 --- /dev/null +++ b/linters/go_revive/Dockerfile @@ -0,0 +1,186 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + go +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# revive installation +RUN go get -u github.com/mgechev/revive + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=GO_REVIVE \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=GO_REVIVE \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/graphql_graphql_schema_linter/Dockerfile b/linters/graphql_graphql_schema_linter/Dockerfile new file mode 100644 index 00000000000..3f9f129c9c2 --- /dev/null +++ b/linters/graphql_graphql_schema_linter/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + graphql-schema-linter +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=GRAPHQL_GRAPHQL_SCHEMA_LINTER \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=GRAPHQL_GRAPHQL_SCHEMA_LINTER \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/groovy_npm_groovy_lint/Dockerfile b/linters/groovy_npm_groovy_lint/Dockerfile new file mode 100644 index 00000000000..7921e86b452 --- /dev/null +++ b/linters/groovy_npm_groovy_lint/Dockerfile @@ -0,0 +1,192 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + openjdk11 \ + npm \ + nodejs-current \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START +WORKDIR /node-deps +RUN npm install --ignore-scripts \ + npm-groovy-lint && \ + npm audit fix --audit-level=critical || true +WORKDIR / + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=GROOVY_NPM_GROOVY_LINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=GROOVY_NPM_GROOVY_LINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/html_htmlhint/Dockerfile b/linters/html_htmlhint/Dockerfile new file mode 100644 index 00000000000..b708f98eb15 --- /dev/null +++ b/linters/html_htmlhint/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + htmlhint +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=HTML_HTMLHINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=HTML_HTMLHINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/java_checkstyle/Dockerfile b/linters/java_checkstyle/Dockerfile new file mode 100644 index 00000000000..de8e389a599 --- /dev/null +++ b/linters/java_checkstyle/Dockerfile @@ -0,0 +1,196 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + openjdk11 +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# JAVA installation +ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk +ENV PATH="$JAVA_HOME/bin:${PATH}" + +# checkstyle installation +RUN CHECKSTYLE_LATEST=$(curl -s https://api.github.com/repos/checkstyle/checkstyle/releases/latest \ + | grep browser_download_url \ + | grep ".jar" \ + | cut -d '"' -f 4) \ + && curl --retry 5 --retry-delay 5 -sSL $CHECKSTYLE_LATEST \ + --output /usr/bin/checkstyle + + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=JAVA_CHECKSTYLE \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=JAVA_CHECKSTYLE \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/javascript_es/Dockerfile b/linters/javascript_es/Dockerfile new file mode 100644 index 00000000000..85d7cc35bb2 --- /dev/null +++ b/linters/javascript_es/Dockerfile @@ -0,0 +1,204 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + npm \ + nodejs-current \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START +WORKDIR /node-deps +RUN npm install --ignore-scripts \ + eslint \ + eslint-config-airbnb \ + eslint-config-prettier \ + eslint-config-standard \ + eslint-plugin-import \ + eslint-plugin-jest \ + eslint-plugin-node \ + eslint-plugin-prettier \ + eslint-plugin-promise \ + eslint-plugin-vue \ + babel-eslint \ + @babel/core \ + @babel/eslint-parser \ + @microsoft/eslint-formatter-sarif && \ + npm audit fix --audit-level=critical || true +WORKDIR / + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=JAVASCRIPT_ES \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=JAVASCRIPT_ES \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/javascript_prettier/Dockerfile b/linters/javascript_prettier/Dockerfile new file mode 100644 index 00000000000..c1277db8ca5 --- /dev/null +++ b/linters/javascript_prettier/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + prettier +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=JAVASCRIPT_PRETTIER \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=JAVASCRIPT_PRETTIER \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/javascript_standard/Dockerfile b/linters/javascript_standard/Dockerfile new file mode 100644 index 00000000000..6143eada80c --- /dev/null +++ b/linters/javascript_standard/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + standard@15.0.1 +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=JAVASCRIPT_STANDARD \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=JAVASCRIPT_STANDARD \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/json_eslint_plugin_jsonc/Dockerfile b/linters/json_eslint_plugin_jsonc/Dockerfile new file mode 100644 index 00000000000..e00f3747396 --- /dev/null +++ b/linters/json_eslint_plugin_jsonc/Dockerfile @@ -0,0 +1,193 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + npm \ + nodejs-current \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START +WORKDIR /node-deps +RUN npm install --ignore-scripts \ + eslint \ + eslint-plugin-jsonc \ + @microsoft/eslint-formatter-sarif && \ + npm audit fix --audit-level=critical || true +WORKDIR / + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=JSON_ESLINT_PLUGIN_JSONC \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=JSON_ESLINT_PLUGIN_JSONC \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/json_jsonlint/Dockerfile b/linters/json_jsonlint/Dockerfile new file mode 100644 index 00000000000..be1926f16aa --- /dev/null +++ b/linters/json_jsonlint/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + jsonlint +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=JSON_JSONLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=JSON_JSONLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/json_prettier/Dockerfile b/linters/json_prettier/Dockerfile new file mode 100644 index 00000000000..5ea0f720b66 --- /dev/null +++ b/linters/json_prettier/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + prettier +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=JSON_PRETTIER \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=JSON_PRETTIER \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/json_v8r/Dockerfile b/linters/json_v8r/Dockerfile new file mode 100644 index 00000000000..d047bc23d3b --- /dev/null +++ b/linters/json_v8r/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + v8r@0.6.1 +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=JSON_V8R \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=JSON_V8R \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/jsx_eslint/Dockerfile b/linters/jsx_eslint/Dockerfile new file mode 100644 index 00000000000..280998094df --- /dev/null +++ b/linters/jsx_eslint/Dockerfile @@ -0,0 +1,194 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + npm \ + nodejs-current \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START +WORKDIR /node-deps +RUN npm install --ignore-scripts \ + eslint \ + eslint-plugin-react \ + eslint-plugin-jsx-a11y \ + @microsoft/eslint-formatter-sarif && \ + npm audit fix --audit-level=critical || true +WORKDIR / + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=JSX_ESLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=JSX_ESLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/kotlin_ktlint/Dockerfile b/linters/kotlin_ktlint/Dockerfile new file mode 100644 index 00000000000..cfe813dd0c9 --- /dev/null +++ b/linters/kotlin_ktlint/Dockerfile @@ -0,0 +1,189 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + openjdk11 +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# ktlint installation +RUN curl --retry 5 --retry-delay 5 -sSLO https://github.com/pinterest/ktlint/releases/latest/download/ktlint && \ + chmod a+x ktlint && \ + mv "ktlint" /usr/bin/ + + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=KOTLIN_KTLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=KOTLIN_KTLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/kubernetes_kubeval/Dockerfile b/linters/kubernetes_kubeval/Dockerfile new file mode 100644 index 00000000000..baec585ac0f --- /dev/null +++ b/linters/kubernetes_kubeval/Dockerfile @@ -0,0 +1,178 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# kubeval installation +RUN wget -q https://github.com/instrumenta/kubeval/releases/latest/download/kubeval-linux-amd64.tar.gz \ + && tar xf kubeval-linux-amd64.tar.gz \ + && cp kubeval /usr/local/bin + + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=KUBERNETES_KUBEVAL \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=KUBERNETES_KUBEVAL \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/latex_chktex/Dockerfile b/linters/latex_chktex/Dockerfile new file mode 100644 index 00000000000..2a9179b13f1 --- /dev/null +++ b/linters/latex_chktex/Dockerfile @@ -0,0 +1,176 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START +FROM ghcr.io/assignuser/chktex-alpine:latest as chktex +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# chktex installation +COPY --from=chktex /usr/bin/chktex /usr/bin/ +RUN cd ~ && touch .chktexrc + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=LATEX_CHKTEX \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=LATEX_CHKTEX \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/lua_luacheck/Dockerfile b/linters/lua_luacheck/Dockerfile new file mode 100644 index 00000000000..59ecde00ebd --- /dev/null +++ b/linters/lua_luacheck/Dockerfile @@ -0,0 +1,189 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + openssl \ + readline-dev +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# luacheck installation +RUN wget --tries=5 https://www.lua.org/ftp/lua-5.3.5.tar.gz -O - -q | tar -xzf - \ + && cd lua-5.3.5 \ + && make linux \ + && make install \ + && cd .. && rm -r lua-5.3.5/ \ + && wget --tries=5 https://github.com/cvega/luarocks/archive/v3.3.1-super-linter.tar.gz -O - -q | tar -xzf - \ + && cd luarocks-3.3.1-super-linter \ + && ./configure --with-lua-include=/usr/local/include \ + && make \ + && make -b install \ + && cd .. && rm -r luarocks-3.3.1-super-linter/ \ + && luarocks install luacheck + + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=LUA_LUACHECK \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=LUA_LUACHECK \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/markdown_markdown_link_check/Dockerfile b/linters/markdown_markdown_link_check/Dockerfile new file mode 100644 index 00000000000..0453f2c22d2 --- /dev/null +++ b/linters/markdown_markdown_link_check/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + markdown-link-check +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=MARKDOWN_MARKDOWN_LINK_CHECK \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=MARKDOWN_MARKDOWN_LINK_CHECK \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/markdown_markdown_table_formatter/Dockerfile b/linters/markdown_markdown_table_formatter/Dockerfile new file mode 100644 index 00000000000..e5d98621f32 --- /dev/null +++ b/linters/markdown_markdown_table_formatter/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + markdown-table-formatter +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=MARKDOWN_MARKDOWN_TABLE_FORMATTER \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=MARKDOWN_MARKDOWN_TABLE_FORMATTER \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/markdown_markdownlint/Dockerfile b/linters/markdown_markdownlint/Dockerfile new file mode 100644 index 00000000000..991ed3efcdc --- /dev/null +++ b/linters/markdown_markdownlint/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + markdownlint-cli +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=MARKDOWN_MARKDOWNLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=MARKDOWN_MARKDOWNLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/markdown_remark_lint/Dockerfile b/linters/markdown_remark_lint/Dockerfile new file mode 100644 index 00000000000..4a61a1ed059 --- /dev/null +++ b/linters/markdown_remark_lint/Dockerfile @@ -0,0 +1,178 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + remark-cli \ + remark-preset-lint-recommended +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=MARKDOWN_REMARK_LINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=MARKDOWN_REMARK_LINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/openapi_spectral/Dockerfile b/linters/openapi_spectral/Dockerfile new file mode 100644 index 00000000000..428574779be --- /dev/null +++ b/linters/openapi_spectral/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + @stoplight/spectral@5.6.0 +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=OPENAPI_SPECTRAL \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=OPENAPI_SPECTRAL \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/perl_perlcritic/Dockerfile b/linters/perl_perlcritic/Dockerfile new file mode 100644 index 00000000000..5529df0bc1a --- /dev/null +++ b/linters/perl_perlcritic/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + perl \ + perl-dev +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# perlcritic installation +RUN curl --retry 5 --retry-delay 5 -sL https://cpanmin.us/ | perl - -nq --no-wget Perl::Critic + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PERL_PERLCRITIC \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PERL_PERLCRITIC \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/php_phpcs/Dockerfile b/linters/php_phpcs/Dockerfile new file mode 100644 index 00000000000..2e3727b1207 --- /dev/null +++ b/linters/php_phpcs/Dockerfile @@ -0,0 +1,211 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + gnupg \ + php7 \ + php7-phar \ + php7-json \ + php7-mbstring \ + php7-xmlwriter \ + php7-tokenizer \ + php7-ctype \ + php7-curl \ + php7-dom \ + php7-simplexml \ + php8 \ + php8-phar \ + php8-mbstring \ + php8-xmlwriter \ + php8-tokenizer \ + php8-ctype \ + php8-curl \ + php8-dom \ + php8-simplexml \ + composer +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# PHP installation +RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ + && wget --tries=5 -q -O phive.phar.asc https://phar.io/releases/phive.phar.asc \ + && PHAR_KEY_ID="0x9D8A98B29B2D5D79" \ + && ( gpg --keyserver keyserver.pgp.com --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver pgp.mit.edu --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys "$PHAR_KEY_ID" ) \ + && gpg --verify phive.phar.asc phive.phar \ + && chmod +x phive.phar \ + && mv phive.phar /usr/local/bin/phive \ + && rm phive.phar.asc + + +# phpcs installation +RUN phive --no-progress install phpcs -g --trust-gpg-keys 31C7E470E2138192 + + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PHP_PHPCS \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PHP_PHPCS \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/php_phplint/Dockerfile b/linters/php_phplint/Dockerfile new file mode 100644 index 00000000000..85c962c5078 --- /dev/null +++ b/linters/php_phplint/Dockerfile @@ -0,0 +1,213 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + gnupg \ + php7 \ + php7-phar \ + php7-json \ + php7-mbstring \ + php7-xmlwriter \ + php7-tokenizer \ + php7-ctype \ + php7-curl \ + php7-dom \ + php7-simplexml \ + php8 \ + php8-phar \ + php8-mbstring \ + php8-xmlwriter \ + php8-tokenizer \ + php8-ctype \ + php8-curl \ + php8-dom \ + php8-simplexml \ + composer +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# PHP installation +RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ + && wget --tries=5 -q -O phive.phar.asc https://phar.io/releases/phive.phar.asc \ + && PHAR_KEY_ID="0x9D8A98B29B2D5D79" \ + && ( gpg --keyserver keyserver.pgp.com --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver pgp.mit.edu --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys "$PHAR_KEY_ID" ) \ + && gpg --verify phive.phar.asc phive.phar \ + && chmod +x phive.phar \ + && mv phive.phar /usr/local/bin/phive \ + && rm phive.phar.asc + + +# phplint installation +RUN composer global require overtrue/phplint ^3.0 \ + && composer global config bin-dir --absolute + +ENV PATH="/root/.composer/vendor/bin:$PATH" + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PHP_PHPLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PHP_PHPLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/php_phpstan/Dockerfile b/linters/php_phpstan/Dockerfile new file mode 100644 index 00000000000..53f42dbb39f --- /dev/null +++ b/linters/php_phpstan/Dockerfile @@ -0,0 +1,211 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + gnupg \ + php7 \ + php7-phar \ + php7-json \ + php7-mbstring \ + php7-xmlwriter \ + php7-tokenizer \ + php7-ctype \ + php7-curl \ + php7-dom \ + php7-simplexml \ + php8 \ + php8-phar \ + php8-mbstring \ + php8-xmlwriter \ + php8-tokenizer \ + php8-ctype \ + php8-curl \ + php8-dom \ + php8-simplexml \ + composer +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# PHP installation +RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ + && wget --tries=5 -q -O phive.phar.asc https://phar.io/releases/phive.phar.asc \ + && PHAR_KEY_ID="0x9D8A98B29B2D5D79" \ + && ( gpg --keyserver keyserver.pgp.com --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver pgp.mit.edu --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys "$PHAR_KEY_ID" ) \ + && gpg --verify phive.phar.asc phive.phar \ + && chmod +x phive.phar \ + && mv phive.phar /usr/local/bin/phive \ + && rm phive.phar.asc + + +# phpstan installation +RUN phive --no-progress install phpstan -g --trust-gpg-keys CF1A108D0E7AE720 + + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PHP_PHPSTAN \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PHP_PHPSTAN \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/php_psalm/Dockerfile b/linters/php_psalm/Dockerfile new file mode 100644 index 00000000000..fc9793c6588 --- /dev/null +++ b/linters/php_psalm/Dockerfile @@ -0,0 +1,224 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + gnupg \ + php7 \ + php7-phar \ + php7-json \ + php7-mbstring \ + php7-xmlwriter \ + php7-tokenizer \ + php7-ctype \ + php7-curl \ + php7-dom \ + php7-simplexml \ + php8 \ + php8-phar \ + php8-mbstring \ + php8-xmlwriter \ + php8-tokenizer \ + php8-ctype \ + php8-curl \ + php8-dom \ + php8-simplexml \ + composer \ + dpkg +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# PHP installation +RUN wget --tries=5 -q -O phive.phar https://phar.io/releases/phive.phar \ + && wget --tries=5 -q -O phive.phar.asc https://phar.io/releases/phive.phar.asc \ + && PHAR_KEY_ID="0x9D8A98B29B2D5D79" \ + && ( gpg --keyserver keyserver.pgp.com --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver pgp.mit.edu --recv-keys "$PHAR_KEY_ID" \ + || gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys "$PHAR_KEY_ID" ) \ + && gpg --verify phive.phar.asc phive.phar \ + && chmod +x phive.phar \ + && mv phive.phar /usr/local/bin/phive \ + && rm phive.phar.asc \ + && update-alternatives --install /usr/bin/php php /usr/bin/php7 100 \ + && update-alternatives --install /usr/bin/php php /usr/bin/php8 10 + + +# psalm installation +RUN phive --no-progress install psalm -g --trust-gpg-keys 8A03EA3B385DBAA1,12CE0F1D262429A5 + + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PHP_PSALM \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PHP_PSALM \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/powershell_powershell/Dockerfile b/linters/powershell_powershell/Dockerfile new file mode 100644 index 00000000000..a585bcdf7d4 --- /dev/null +++ b/linters/powershell_powershell/Dockerfile @@ -0,0 +1,189 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START +ARG PWSH_VERSION='latest' +ARG PWSH_DIRECTORY='/opt/microsoft/powershell' +ARG PSSA_VERSION='latest' +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + icu-libs +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# POWERSHELL installation +RUN mkdir -p ${PWSH_DIRECTORY} \ + && curl --retry 5 --retry-delay 5 -s https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ + | grep browser_download_url \ + | grep linux-alpine-x64 \ + | cut -d '"' -f 4 \ + | xargs -n 1 wget -O - \ + | tar -xzC ${PWSH_DIRECTORY} \ + && ln -sf ${PWSH_DIRECTORY}/pwsh /usr/bin/pwsh + + +# powershell installation +RUN pwsh -c 'Install-Module -Name PSScriptAnalyzer -RequiredVersion ${PSSA_VERSION} -Scope AllUsers -Force' + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=POWERSHELL_POWERSHELL \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=POWERSHELL_POWERSHELL \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/protobuf_protolint/Dockerfile b/linters/protobuf_protolint/Dockerfile new file mode 100644 index 00000000000..6547d10b93c --- /dev/null +++ b/linters/protobuf_protolint/Dockerfile @@ -0,0 +1,175 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START +FROM yoheimuta/protolint:latest as protolint +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# protolint installation +COPY --from=protolint /usr/local/bin/protolint /usr/bin/ + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PROTOBUF_PROTOLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PROTOBUF_PROTOLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/puppet_puppet_lint/Dockerfile b/linters/puppet_puppet_lint/Dockerfile new file mode 100644 index 00000000000..671fe3f4370 --- /dev/null +++ b/linters/puppet_puppet_lint/Dockerfile @@ -0,0 +1,179 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START +RUN echo 'gem: --no-document' >> ~/.gemrc && \ + gem install \ + puppet-lint +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PUPPET_PUPPET_LINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PUPPET_PUPPET_LINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/python_bandit/Dockerfile b/linters/python_bandit/Dockerfile new file mode 100644 index 00000000000..2d25e63c003 --- /dev/null +++ b/linters/python_bandit/Dockerfile @@ -0,0 +1,185 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ + 'bandit' \ + 'bandit_sarif_formatter' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PYTHON_BANDIT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PYTHON_BANDIT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/python_black/Dockerfile b/linters/python_black/Dockerfile new file mode 100644 index 00000000000..5e348509a02 --- /dev/null +++ b/linters/python_black/Dockerfile @@ -0,0 +1,174 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'black' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PYTHON_BLACK \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PYTHON_BLACK \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/python_flake8/Dockerfile b/linters/python_flake8/Dockerfile new file mode 100644 index 00000000000..ad2b85369d5 --- /dev/null +++ b/linters/python_flake8/Dockerfile @@ -0,0 +1,174 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'flake8' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PYTHON_FLAKE8 \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PYTHON_FLAKE8 \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/python_isort/Dockerfile b/linters/python_isort/Dockerfile new file mode 100644 index 00000000000..a131f8cf8e8 --- /dev/null +++ b/linters/python_isort/Dockerfile @@ -0,0 +1,175 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'isort' \ + 'black' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PYTHON_ISORT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PYTHON_ISORT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/python_mypy/Dockerfile b/linters/python_mypy/Dockerfile new file mode 100644 index 00000000000..8635eaadb95 --- /dev/null +++ b/linters/python_mypy/Dockerfile @@ -0,0 +1,174 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'mypy' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PYTHON_MYPY \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PYTHON_MYPY \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/python_pylint/Dockerfile b/linters/python_pylint/Dockerfile new file mode 100644 index 00000000000..1f6bdad64d9 --- /dev/null +++ b/linters/python_pylint/Dockerfile @@ -0,0 +1,174 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'pylint' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=PYTHON_PYLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=PYTHON_PYLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/r_lintr/Dockerfile b/linters/r_lintr/Dockerfile new file mode 100644 index 00000000000..ba5a843381a --- /dev/null +++ b/linters/r_lintr/Dockerfile @@ -0,0 +1,180 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START +FROM ghcr.io/assignuser/lintr-lib:0.2.0 as lintr-lib +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + libxml2 \ + R \ + R-dev \ + R-doc +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# lintr installation +COPY --from=lintr-lib /usr/lib/R/library/ /home/r-library +RUN R -e "install.packages(list.dirs('/home/r-library',recursive = FALSE), repos = NULL, type = 'source')" + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=R_LINTR \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=R_LINTR \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/raku_raku/Dockerfile b/linters/raku_raku/Dockerfile new file mode 100644 index 00000000000..6a90903ca98 --- /dev/null +++ b/linters/raku_raku/Dockerfile @@ -0,0 +1,182 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# raku installation +RUN curl -L https://github.com/nxadm/rakudo-pkg/releases/download/v2020.10-02/rakudo-pkg-Alpine3.12_2020.10-02_x86_64.apk > rakudo-pkg-Alpine3.12_2020.10-02_x86_64.apk \ + && apk add --no-cache --allow-untrusted rakudo-pkg-Alpine3.12_2020.10-02_x86_64.apk \ + && rm rakudo-pkg-Alpine3.12_2020.10-02_x86_64.apk \ + && /opt/rakudo-pkg/bin/add-rakudo-to-path \ + # && source /root/.profile \ + && /opt/rakudo-pkg/bin/install-zef-as-user + +ENV PATH="~/.raku/bin:/opt/rakudo-pkg/bin:/opt/rakudo-pkg/share/perl6/site/bin:$PATH" + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=RAKU_RAKU \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=RAKU_RAKU \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/repository_devskim/Dockerfile b/linters/repository_devskim/Dockerfile new file mode 100644 index 00000000000..30cfe84312e --- /dev/null +++ b/linters/repository_devskim/Dockerfile @@ -0,0 +1,198 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + icu-libs \ + libcurl \ + libintl \ + libssl1.1 \ + libstdc++ \ + lttng-ust-dev \ + zlib \ + zlib-dev +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# devskim installation +RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest + +ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" +RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=REPOSITORY_DEVSKIM \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_DEVSKIM \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/repository_dustilock/Dockerfile b/linters/repository_dustilock/Dockerfile new file mode 100644 index 00000000000..72d9f12c26f --- /dev/null +++ b/linters/repository_dustilock/Dockerfile @@ -0,0 +1,194 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + go +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# dustilock installation +RUN ML_THIRD_PARTY_DIR=/download/dustilock && \ + mkdir -p ${ML_THIRD_PARTY_DIR} && \ + git clone https://github.com/Checkmarx/dustilock.git ${ML_THIRD_PARTY_DIR} && \ + cd ${ML_THIRD_PARTY_DIR} && \ + go build && \ + chmod +x dustilock && \ + mv "${ML_THIRD_PARTY_DIR}/dustilock" /usr/bin/ && \ + find ${ML_THIRD_PARTY_DIR} -type f -not -name 'LICENSE*' -delete -o -type d -empty -delete + + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=REPOSITORY_DUSTILOCK \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_DUSTILOCK \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/repository_git_diff/Dockerfile b/linters/repository_git_diff/Dockerfile new file mode 100644 index 00000000000..7364d9e6cb4 --- /dev/null +++ b/linters/repository_git_diff/Dockerfile @@ -0,0 +1,173 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=REPOSITORY_GIT_DIFF \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_GIT_DIFF \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/repository_gitleaks/Dockerfile b/linters/repository_gitleaks/Dockerfile new file mode 100644 index 00000000000..f5061f9cdfc --- /dev/null +++ b/linters/repository_gitleaks/Dockerfile @@ -0,0 +1,185 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START +FROM zricethezav/gitleaks:v8.8.7 as gitleaks +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# gitleaks installation +COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=REPOSITORY_GITLEAKS \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_GITLEAKS \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/repository_goodcheck/Dockerfile b/linters/repository_goodcheck/Dockerfile new file mode 100644 index 00000000000..d3ee24d94ba --- /dev/null +++ b/linters/repository_goodcheck/Dockerfile @@ -0,0 +1,179 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START +RUN echo 'gem: --no-document' >> ~/.gemrc && \ + gem install \ + goodcheck +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=REPOSITORY_GOODCHECK \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_GOODCHECK \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/repository_secretlint/Dockerfile b/linters/repository_secretlint/Dockerfile new file mode 100644 index 00000000000..21ebcc1bc07 --- /dev/null +++ b/linters/repository_secretlint/Dockerfile @@ -0,0 +1,193 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + npm \ + nodejs-current \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START +WORKDIR /node-deps +RUN npm install --ignore-scripts \ + secretlint \ + @secretlint/secretlint-rule-preset-recommend \ + @secretlint/secretlint-formatter-sarif && \ + npm audit fix --audit-level=critical || true +WORKDIR / + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=REPOSITORY_SECRETLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_SECRETLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/repository_semgrep/Dockerfile b/linters/repository_semgrep/Dockerfile new file mode 100644 index 00000000000..f60f98d8ecb --- /dev/null +++ b/linters/repository_semgrep/Dockerfile @@ -0,0 +1,184 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade pip && pip3 install --no-cache-dir --upgrade \ + 'semgrep' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=REPOSITORY_SEMGREP \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_SEMGREP \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/repository_syft/Dockerfile b/linters/repository_syft/Dockerfile new file mode 100644 index 00000000000..e460faa8638 --- /dev/null +++ b/linters/repository_syft/Dockerfile @@ -0,0 +1,185 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# syft installation +RUN curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=REPOSITORY_SYFT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_SYFT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/repository_trivy/Dockerfile b/linters/repository_trivy/Dockerfile new file mode 100644 index 00000000000..d24b78fb6c0 --- /dev/null +++ b/linters/repository_trivy/Dockerfile @@ -0,0 +1,188 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# trivy installation +RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=REPOSITORY_TRIVY \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=REPOSITORY_TRIVY \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/rst_rst_lint/Dockerfile b/linters/rst_rst_lint/Dockerfile new file mode 100644 index 00000000000..997235a7b19 --- /dev/null +++ b/linters/rst_rst_lint/Dockerfile @@ -0,0 +1,174 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'restructuredtext_lint' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=RST_RST_LINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=RST_RST_LINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/rst_rstcheck/Dockerfile b/linters/rst_rstcheck/Dockerfile new file mode 100644 index 00000000000..fbf02e0dadc --- /dev/null +++ b/linters/rst_rstcheck/Dockerfile @@ -0,0 +1,174 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'rstcheck' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=RST_RSTCHECK \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=RST_RSTCHECK \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/rst_rstfmt/Dockerfile b/linters/rst_rstfmt/Dockerfile new file mode 100644 index 00000000000..e35ae8d0a87 --- /dev/null +++ b/linters/rst_rstfmt/Dockerfile @@ -0,0 +1,175 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'sphinx<4.0' \ + 'rstfmt' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=RST_RSTFMT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=RST_RSTFMT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/ruby_rubocop/Dockerfile b/linters/ruby_rubocop/Dockerfile new file mode 100644 index 00000000000..a3fbe224fa6 --- /dev/null +++ b/linters/ruby_rubocop/Dockerfile @@ -0,0 +1,183 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + ruby \ + ruby-dev \ + ruby-bundler \ + ruby-rdoc +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START +RUN echo 'gem: --no-document' >> ~/.gemrc && \ + gem install \ + rubocop:0.82.0 \ + rubocop-github:0.16.0 \ + rubocop-performance:1.7.1 \ + rubocop-rails:2.5 \ + rubocop-rspec:1.41.0 +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=RUBY_RUBOCOP \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=RUBY_RUBOCOP \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/rust_clippy/Dockerfile b/linters/rust_clippy/Dockerfile new file mode 100644 index 00000000000..9186543ba69 --- /dev/null +++ b/linters/rust_clippy/Dockerfile @@ -0,0 +1,179 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# RUST installation +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y +ENV PATH="/root/.cargo/bin:${PATH}" + +# clippy installation +RUN rustup component add clippy + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=RUST_CLIPPY \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=RUST_CLIPPY \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/salesforce_sfdx_scanner_apex/Dockerfile b/linters/salesforce_sfdx_scanner_apex/Dockerfile new file mode 100644 index 00000000000..6d00725bad1 --- /dev/null +++ b/linters/salesforce_sfdx_scanner_apex/Dockerfile @@ -0,0 +1,185 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + openjdk8 \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + sfdx-cli +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# SALESFORCE installation +ENV JAVA_HOME=/usr/lib/jvm/java‑11‑openjdk +ENV PATH="$JAVA_HOME/bin:${PATH}" +RUN echo y|sfdx plugins:install sfdx-hardis + +# sfdx-scanner-apex installation +RUN sfdx plugins:install @salesforce/sfdx-scanner + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=SALESFORCE_SFDX_SCANNER_APEX \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=SALESFORCE_SFDX_SCANNER_APEX \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/salesforce_sfdx_scanner_aura/Dockerfile b/linters/salesforce_sfdx_scanner_aura/Dockerfile new file mode 100644 index 00000000000..ffe63711f9f --- /dev/null +++ b/linters/salesforce_sfdx_scanner_aura/Dockerfile @@ -0,0 +1,185 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + openjdk8 \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + sfdx-cli +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# SALESFORCE installation +ENV JAVA_HOME=/usr/lib/jvm/java‑11‑openjdk +ENV PATH="$JAVA_HOME/bin:${PATH}" +RUN echo y|sfdx plugins:install sfdx-hardis + +# sfdx-scanner-aura installation +RUN sfdx plugins:install @salesforce/sfdx-scanner + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=SALESFORCE_SFDX_SCANNER_AURA \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=SALESFORCE_SFDX_SCANNER_AURA \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/salesforce_sfdx_scanner_lwc/Dockerfile b/linters/salesforce_sfdx_scanner_lwc/Dockerfile new file mode 100644 index 00000000000..e57fed65869 --- /dev/null +++ b/linters/salesforce_sfdx_scanner_lwc/Dockerfile @@ -0,0 +1,185 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + openjdk8 \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + sfdx-cli +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# SALESFORCE installation +ENV JAVA_HOME=/usr/lib/jvm/java‑11‑openjdk +ENV PATH="$JAVA_HOME/bin:${PATH}" +RUN echo y|sfdx plugins:install sfdx-hardis + +# sfdx-scanner-lwc installation +RUN sfdx plugins:install @salesforce/sfdx-scanner + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=SALESFORCE_SFDX_SCANNER_LWC \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=SALESFORCE_SFDX_SCANNER_LWC \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/scala_scalafix/Dockerfile b/linters/scala_scalafix/Dockerfile new file mode 100644 index 00000000000..9be484cecb3 --- /dev/null +++ b/linters/scala_scalafix/Dockerfile @@ -0,0 +1,181 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + openjdk8 +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# SCALA installation +RUN curl -fLo coursier https://git.io/coursier-cli && \ + chmod +x coursier + + +# scalafix installation +RUN ./coursier install scalafix --quiet --install-dir /usr/bin + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=SCALA_SCALAFIX \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=SCALA_SCALAFIX \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/snakemake_lint/Dockerfile b/linters/snakemake_lint/Dockerfile new file mode 100644 index 00000000000..1691ac2cbd7 --- /dev/null +++ b/linters/snakemake_lint/Dockerfile @@ -0,0 +1,174 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'snakemake' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=SNAKEMAKE_LINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=SNAKEMAKE_LINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/snakemake_snakefmt/Dockerfile b/linters/snakemake_snakefmt/Dockerfile new file mode 100644 index 00000000000..195ad4fb599 --- /dev/null +++ b/linters/snakemake_snakefmt/Dockerfile @@ -0,0 +1,174 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'snakefmt' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=SNAKEMAKE_SNAKEFMT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=SNAKEMAKE_SNAKEFMT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/spell_cspell/Dockerfile b/linters/spell_cspell/Dockerfile new file mode 100644 index 00000000000..8e1a6568d53 --- /dev/null +++ b/linters/spell_cspell/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + cspell +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=SPELL_CSPELL \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=SPELL_CSPELL \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/spell_misspell/Dockerfile b/linters/spell_misspell/Dockerfile new file mode 100644 index 00000000000..da0cd11a7db --- /dev/null +++ b/linters/spell_misspell/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# misspell installation +RUN curl -L -o ./install-misspell.sh https://git.io/misspell \ + && sh ./install-misspell.sh + + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=SPELL_MISSPELL \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=SPELL_MISSPELL \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/sql_sql_lint/Dockerfile b/linters/sql_sql_lint/Dockerfile new file mode 100644 index 00000000000..b6791c09bc8 --- /dev/null +++ b/linters/sql_sql_lint/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + sql-lint +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=SQL_SQL_LINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=SQL_SQL_LINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/sql_sqlfluff/Dockerfile b/linters/sql_sqlfluff/Dockerfile new file mode 100644 index 00000000000..c3e219b3f07 --- /dev/null +++ b/linters/sql_sqlfluff/Dockerfile @@ -0,0 +1,174 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'sqlfluff' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=SQL_SQLFLUFF \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=SQL_SQLFLUFF \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/sql_tsqllint/Dockerfile b/linters/sql_tsqllint/Dockerfile new file mode 100644 index 00000000000..fb862bc2489 --- /dev/null +++ b/linters/sql_tsqllint/Dockerfile @@ -0,0 +1,188 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + icu-libs \ + libcurl \ + libintl \ + libssl1.1 \ + libstdc++ \ + lttng-ust-dev \ + zlib \ + zlib-dev +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# tsqllint installation +RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest + +ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" +RUN dotnet tool install --global TSQLLint + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=SQL_TSQLLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=SQL_TSQLLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/swift_swiftlint/Dockerfile b/linters/swift_swiftlint/Dockerfile new file mode 100644 index 00000000000..657cd6729f7 --- /dev/null +++ b/linters/swift_swiftlint/Dockerfile @@ -0,0 +1,175 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + docker \ + openrc +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +RUN rc-update add docker boot && rc-service docker start || true +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=SWIFT_SWIFTLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=SWIFT_SWIFTLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/tekton_tekton_lint/Dockerfile b/linters/tekton_tekton_lint/Dockerfile new file mode 100644 index 00000000000..8ae3279ffa9 --- /dev/null +++ b/linters/tekton_tekton_lint/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + tekton-lint +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TEKTON_TEKTON_LINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TEKTON_TEKTON_LINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/terraform_checkov/Dockerfile b/linters/terraform_checkov/Dockerfile new file mode 100644 index 00000000000..5630c92a38c --- /dev/null +++ b/linters/terraform_checkov/Dockerfile @@ -0,0 +1,187 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# checkov installation +RUN pip3 install --upgrade --no-cache-dir pip && pip3 install --upgrade --no-cache-dir setuptools \ + && pip3 install --no-cache-dir checkov + + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TERRAFORM_CHECKOV \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TERRAFORM_CHECKOV \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/terraform_kics/Dockerfile b/linters/terraform_kics/Dockerfile new file mode 100644 index 00000000000..3eedbdd5141 --- /dev/null +++ b/linters/terraform_kics/Dockerfile @@ -0,0 +1,178 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START +FROM checkmarx/kics:alpine as kics +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# kics installation +COPY --from=kics /app/bin/kics /usr/bin/ +RUN mkdir -p /opt/kics/assets +ENV KICS_QUERIES_PATH=/opt/kics/assets/queries KICS_LIBRARIES_PATH=/opt/kics/assets/libraries +COPY --from=kics /app/bin/assets /opt/kics/assets/ + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TERRAFORM_KICS \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TERRAFORM_KICS \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/terraform_terraform_fmt/Dockerfile b/linters/terraform_terraform_fmt/Dockerfile new file mode 100644 index 00000000000..bb5b77da70a --- /dev/null +++ b/linters/terraform_terraform_fmt/Dockerfile @@ -0,0 +1,175 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START +FROM alpine/terragrunt:latest as terragrunt +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# terraform-fmt installation +COPY --from=terragrunt /bin/terraform /usr/bin/ + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TERRAFORM_TERRAFORM_FMT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TERRAFORM_TERRAFORM_FMT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/terraform_terragrunt/Dockerfile b/linters/terraform_terragrunt/Dockerfile new file mode 100644 index 00000000000..55a2860e25d --- /dev/null +++ b/linters/terraform_terragrunt/Dockerfile @@ -0,0 +1,175 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START +FROM alpine/terragrunt:latest as terragrunt +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# terragrunt installation +COPY --from=terragrunt /usr/local/bin/terragrunt /usr/bin/ + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TERRAFORM_TERRAGRUNT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TERRAFORM_TERRAGRUNT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/terraform_terrascan/Dockerfile b/linters/terraform_terrascan/Dockerfile new file mode 100644 index 00000000000..d3449c9eed6 --- /dev/null +++ b/linters/terraform_terrascan/Dockerfile @@ -0,0 +1,185 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START +FROM tenable/terrascan:latest as terrascan +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# terrascan installation +COPY --from=terrascan /go/bin/terrascan /usr/bin/ + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TERRAFORM_TERRASCAN \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TERRAFORM_TERRASCAN \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/terraform_tflint/Dockerfile b/linters/terraform_tflint/Dockerfile new file mode 100644 index 00000000000..85ffbc37cd0 --- /dev/null +++ b/linters/terraform_tflint/Dockerfile @@ -0,0 +1,185 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START +FROM ghcr.io/terraform-linters/tflint:v0.35.0 as tflint +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# tflint installation +COPY --from=tflint /usr/local/bin/tflint /usr/bin/ + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TERRAFORM_TFLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TERRAFORM_TFLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/tsx_eslint/Dockerfile b/linters/tsx_eslint/Dockerfile new file mode 100644 index 00000000000..d98ee9ac274 --- /dev/null +++ b/linters/tsx_eslint/Dockerfile @@ -0,0 +1,203 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + npm \ + nodejs-current \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START +WORKDIR /node-deps +RUN npm install --ignore-scripts \ + typescript \ + eslint \ + eslint-config-airbnb \ + eslint-config-prettier \ + eslint-plugin-jest \ + eslint-plugin-prettier \ + eslint-plugin-react \ + babel-eslint \ + prettier \ + prettyjson \ + @typescript-eslint/eslint-plugin \ + @typescript-eslint/parser \ + @microsoft/eslint-formatter-sarif && \ + npm audit fix --audit-level=critical || true +WORKDIR / + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TSX_ESLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TSX_ESLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/typescript_es/Dockerfile b/linters/typescript_es/Dockerfile new file mode 100644 index 00000000000..e9bf934c565 --- /dev/null +++ b/linters/typescript_es/Dockerfile @@ -0,0 +1,206 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +# 3.10.5 is not usable until https://github.com/jruere/multiprocessing-logging/issues/56 is fixed +FROM python:3.10.4-alpine3.15 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +WORKDIR / + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + ca-certificates \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + npm \ + nodejs-current \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +ENV NODE_OPTIONS="--max-old-space-size=8192" +#NPM__START +WORKDIR /node-deps +RUN npm install --ignore-scripts \ + typescript \ + eslint \ + eslint-config-airbnb \ + eslint-config-prettier \ + eslint-config-standard \ + eslint-plugin-import \ + eslint-plugin-jest \ + eslint-plugin-node \ + eslint-plugin-prettier \ + eslint-plugin-promise \ + babel-eslint \ + prettier \ + prettyjson \ + @typescript-eslint/eslint-plugin \ + @typescript-eslint/parser \ + @microsoft/eslint-formatter-sarif && \ + npm audit fix --audit-level=critical || true +WORKDIR / + +#NPM__END + +# Add node packages to path # +ENV PATH="/node-deps/node_modules/.bin:${PATH}" +ENV NODE_PATH="/node-deps/node_modules" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.source="https://github.com/oxsecurity/megalinter" \ + org.opencontainers.image.documentation="https://oxsecurity.github.io/megalinter" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TYPESCRIPT_ES \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TYPESCRIPT_ES \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false + +RUN mkdir /root/docker_ssh && mkdir /usr/bin/megalinter-sh +EXPOSE 22 +COPY entrypoint.sh /entrypoint.sh +COPY sh /usr/bin/megalinter-sh +COPY sh/megalinter_exec /usr/bin/megalinter_exec +COPY sh/motd /etc/motd +RUN find /usr/bin/megalinter-sh/ -type f -iname "*.sh" -exec chmod +x {} \; && \ + chmod +x entrypoint.sh && \ + chmod +x /usr/bin/megalinter_exec && \ + echo "alias megalinter='python -m megalinter.run'" >> ~/.bashrc && source ~/.bashrc && \ + echo "alias megalinter_exec='/usr/bin/megalinter_exec'" >> ~/.bashrc && source ~/.bashrc +RUN export STANDALONE_LINTER_VERSION="$(python -m megalinter.run --input /tmp --linterversion)" && \ + echo $STANDALONE_LINTER_VERSION +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] +#EXTRA_DOCKERFILE_LINES__END diff --git a/linters/typescript_prettier/Dockerfile b/linters/typescript_prettier/Dockerfile new file mode 100644 index 00000000000..fd99f3c3774 --- /dev/null +++ b/linters/typescript_prettier/Dockerfile @@ -0,0 +1,178 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + typescript \ + prettier +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TYPESCRIPT_PRETTIER \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TYPESCRIPT_PRETTIER \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/typescript_standard/Dockerfile b/linters/typescript_standard/Dockerfile new file mode 100644 index 00000000000..f05b842e4fd --- /dev/null +++ b/linters/typescript_standard/Dockerfile @@ -0,0 +1,180 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + typescript \ + standard@15.0.1 \ + @typescript-eslint/eslint-plugin \ + @typescript-eslint/parser +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=TYPESCRIPT_STANDARD \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=TYPESCRIPT_STANDARD \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/vbdotnet_dotnet_format/Dockerfile b/linters/vbdotnet_dotnet_format/Dockerfile new file mode 100644 index 00000000000..c076821a244 --- /dev/null +++ b/linters/vbdotnet_dotnet_format/Dockerfile @@ -0,0 +1,190 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + icu-libs \ + libcurl \ + libintl \ + libssl1.1 \ + libstdc++ \ + lttng-ust-dev \ + zlib \ + zlib-dev +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START +# VBDOTNET installation +RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest + +ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" + +# dotnet-format installation +RUN /usr/share/dotnet/dotnet tool install -g dotnet-format + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=VBDOTNET_DOTNET_FORMAT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=VBDOTNET_DOTNET_FORMAT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/xml_xmllint/Dockerfile b/linters/xml_xmllint/Dockerfile new file mode 100644 index 00000000000..7dc7870d696 --- /dev/null +++ b/linters/xml_xmllint/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + libc-dev \ + libxml2-dev \ + libxml2-utils \ + libgcc +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=XML_XMLLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=XML_XMLLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/yaml_prettier/Dockerfile b/linters/yaml_prettier/Dockerfile new file mode 100644 index 00000000000..6e1b6b219cd --- /dev/null +++ b/linters/yaml_prettier/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + prettier +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=YAML_PRETTIER \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=YAML_PRETTIER \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/yaml_v8r/Dockerfile b/linters/yaml_v8r/Dockerfile new file mode 100644 index 00000000000..bbb578ad50e --- /dev/null +++ b/linters/yaml_v8r/Dockerfile @@ -0,0 +1,177 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START +RUN apk add --update --no-cache \ + nodejs \ + npm \ + yarn +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START + +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START +RUN npm install --no-cache --ignore-scripts \ + v8r@0.6.1 +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=YAML_V8R \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=YAML_V8R \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/linters/yaml_yamllint/Dockerfile b/linters/yaml_yamllint/Dockerfile new file mode 100644 index 00000000000..c35878816d3 --- /dev/null +++ b/linters/yaml_yamllint/Dockerfile @@ -0,0 +1,174 @@ +########################################### +########################################### +## Dockerfile to run MegaLinter ## +########################################### +########################################### + +# @not-generated + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#FROM__START + +#FROM__END + +################## +# Get base image # +################## +FROM python:3.9.7-alpine3.13 + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#ARG__START + +#ARG__END + +#################### +# Run APK installs # +#################### + +# APK Packages used by mega-linter core architecture +RUN apk add --update --no-cache \ + bash \ + curl \ + gcc \ + git \ + libffi-dev \ + make \ + musl-dev \ + openssh && \ + git config --global core.autocrlf true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#APK__START + +#APK__END + +# PATH for golang +ENV GOROOT=/usr/lib/go \ + GOPATH=/go +# hadolint ignore=DL3044 +ENV PATH="$PATH":"$GOROOT"/bin:"$GOPATH"/bin +RUN mkdir -p ${GOPATH}/src ${GOPATH}/bin || true && \ + # Ignore npm package issues + yarn config set ignore-engines true || true + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#PIP__START +RUN pip3 install --no-cache-dir --upgrade \ + 'yamllint' +#PIP__END + +############################ +# Install NPM dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +# Downgrade npm because from npm@v7, npm install crashes when called from root directory within Dockerfile +RUN npm install npm@latest-6 -g || true && \ + # Disable package-lock.json to avoid sudden crash. Try to remove later if possible + echo 'package-lock=false' >> .npmrc || true + +#NPM__START + +#NPM__END + +# Add node packages to path # +ENV PATH="/node_modules/.bin:${PATH}" + +############################## +# Installs ruby dependencies # +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# + +#GEM__START + +#GEM__END + +############################################################################################# +## @generated by .automation/build.py using descriptor files, please do not update manually ## +############################################################################################# +#OTHER__START + +#OTHER__END + +###################### +# Set the entrypoint # +###################### +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x entrypoint.sh +ENTRYPOINT ["/bin/bash", "/entrypoint.sh"] + +################################ +# Installs python dependencies # +################################ +COPY megalinter /megalinter +RUN python /megalinter/setup.py install \ + && python /megalinter/setup.py clean --all \ + && rm -rf /var/cache/apk/* + +####################################### +# Copy scripts and rules to container # +####################################### +COPY megalinter/descriptors /megalinter-descriptors +COPY TEMPLATES /action/lib/.automation + +########################### +# Get the build arguments # +########################### +ARG BUILD_DATE +ARG BUILD_REVISION +ARG BUILD_VERSION + +################################################# +# Set ENV values used for debugging the version # +################################################# +ENV BUILD_DATE=$BUILD_DATE \ + BUILD_REVISION=$BUILD_REVISION \ + BUILD_VERSION=$BUILD_VERSION + +#FLAVOR__START +ENV MEGALINTER_FLAVOR=none +#FLAVOR__END + +#EXTRA_DOCKERFILE_LINES__START +ENV ENABLE_LINTERS=YAML_YAMLLINT \ + FLAVOR_SUGGESTIONS=false \ + SINGLE_LINTER=YAML_YAMLLINT \ + PRINT_ALPACA=false \ + LOG_FILE=none \ + SARIF_REPORTER=true \ + TEXT_REPORTER=false \ + UPDATED_SOURCES_REPORTER=false \ + GITHUB_STATUS_REPORTER=false \ + GITHUB_COMMENT_REPORTER=false \ + EMAIL_REPORTER=false \ + FILEIO_REPORTER=false \ + CONFIG_REPORTER=false +#EXTRA_DOCKERFILE_LINES__END + +######################################### +# Label the instance and set maintainer # +######################################### +LABEL com.github.actions.name="MegaLinter" \ + com.github.actions.description="The ultimate linters aggregator to make sure your projects are clean" \ + com.github.actions.icon="code" \ + com.github.actions.color="red" \ + maintainer="Nicolas Vuillamy " \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$BUILD_REVISION \ + org.opencontainers.image.version=$BUILD_VERSION \ + org.opencontainers.image.authors="Nicolas Vuillamy " \ + org.opencontainers.image.url="https://megalinter.github.io" \ + org.opencontainers.image.source="https://github.com/megalinter/megalinter" \ + org.opencontainers.image.documentation="https://megalinter.github.io" \ + org.opencontainers.image.vendor="Nicolas Vuillamy" \ + org.opencontainers.image.description="Lint your code base with GitHub Actions" diff --git a/mega-linter-runner/.mega-linter.yml b/mega-linter-runner/.mega-linter.yml index 884a2530d0c..5344afeebdb 100644 --- a/mega-linter-runner/.mega-linter.yml +++ b/mega-linter-runner/.mega-linter.yml @@ -1,11 +1,13 @@ # Configuration file for MegaLinter -# See all available variables at https://megalinter.github.io/configuration/ and in linters documentation +# See all available variables at https://oxsecurity.github.io/megalinter/configuration/ and in linters documentation APPLY_FIXES: all # When active, APPLY_FIXES must also be defined as environment variable (in github/workflows/mega-linter.yml or other CI tool) # ENABLE: # If you use ENABLE variable, all other languages/formats/tooling formats will be disabled by default # ENABLE_LINTERS: # If you use ENABLE_LINTERS variable, all other linters will be disabled by default DISABLE: - EDITORCONFIG +DISABLE_LINTERS: + - REPOSITORY_SEMGREP JAVASCRIPT_DEFAULT_STYLE: prettier YAML_FILTER_REGEX_EXCLUDE: (templates) MARKDOWN_MARKDOWN_LINK_CHECK_DISABLE_ERRORS: true diff --git a/mega-linter-runner/.trivyignore b/mega-linter-runner/.trivyignore new file mode 100644 index 00000000000..867a4c901e3 --- /dev/null +++ b/mega-linter-runner/.trivyignore @@ -0,0 +1,4 @@ +CVE-2021-23566 +CVE-2021-3807 +CVE-2021-43138 +CVE-2021-44906 diff --git a/mega-linter-runner/README.md b/mega-linter-runner/README.md index e2a529f63b2..8ac39daf290 100644 --- a/mega-linter-runner/README.md +++ b/mega-linter-runner/README.md @@ -131,120 +131,124 @@ You can generate a ready-to-use [.mega-linter.yml configuration file](https://me ### Languages -| | Language | Linter | Configuration key | Format/Fix | Status | -|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**BASH**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/bash.md#readme) | [bash-exec](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/bash_bash_exec.md#readme) | [BASH_EXEC](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/bash_bash_exec.md#readme) | | | -| | | [shellcheck](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/bash_shellcheck.md#readme) | [BASH_SHELLCHECK](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/bash_shellcheck.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/koalaman/shellcheck)](https://github.com/koalaman/shellcheck/commits) | -| | | [shfmt](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/bash_shfmt.md#readme) | [BASH_SHFMT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/bash_shfmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/mvdan/sh)](https://github.com/mvdan/sh/commits) | -| | [**C**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/c.md#readme) | [cpplint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/c_cpplint.md#readme) | [C_CPPLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/c_cpplint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cpplint/cpplint)](https://github.com/cpplint/cpplint/commits) | -| | [**CLOJURE**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/clojure.md#readme) | [clj-kondo](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/clojure_clj_kondo.md#readme) | [CLOJURE_CLJ_KONDO](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/clojure_clj_kondo.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/borkdude/clj-kondo)](https://github.com/borkdude/clj-kondo/commits) | -| | [**COFFEE**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/coffee.md#readme) | [coffeelint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md#readme) | [COFFEE_COFFEELINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/clutchski/coffeelint)](https://github.com/clutchski/coffeelint/commits) | -| | [**C++** (CPP)](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/cpp.md#readme) | [cpplint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/cpp_cpplint.md#readme) | [CPP_CPPLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/cpp_cpplint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cpplint/cpplint)](https://github.com/cpplint/cpplint/commits) | -| | [**C#** (CSHARP)](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/csharp.md#readme) | [dotnet-format](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md#readme) | [CSHARP_DOTNET_FORMAT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotnet/format)](https://github.com/dotnet/format/commits) | -| | [**DART**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dart.md#readme) | [dartanalyzer](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md#readme) | [DART_DARTANALYZER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/dart-lang/sdk)](https://github.com/dart-lang/sdk/commits) | -| | [**GO**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/go.md#readme) | [golangci-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/go_golangci_lint.md#readme) | [GO_GOLANGCI_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/go_golangci_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/golangci/golangci-lint)](https://github.com/golangci/golangci-lint/commits) | -| | | [revive](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/go_revive.md#readme) | [GO_REVIVE](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/go_revive.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/mgechev/revive)](https://github.com/mgechev/revive/commits) | -| | [**GROOVY**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/groovy.md#readme) | [npm-groovy-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md#readme) | [GROOVY_NPM_GROOVY_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/npm-groovy-lint)](https://github.com/nvuillam/npm-groovy-lint/commits) | -| | [**JAVA**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/java.md#readme) | [checkstyle](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/java_checkstyle.md#readme) | [JAVA_CHECKSTYLE](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/java_checkstyle.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/checkstyle/checkstyle)](https://github.com/checkstyle/checkstyle/commits) | -| | [**JAVASCRIPT**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/javascript.md#readme) | [eslint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/javascript_eslint.md#readme) | [JAVASCRIPT_ES](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/javascript_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/eslint/eslint)](https://github.com/eslint/eslint/commits) | -| | | [standard](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/javascript_standard.md#readme) | [JAVASCRIPT_STANDARD](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/javascript_standard.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/standard/standard)](https://github.com/standard/standard/commits) | -| | | [prettier](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/javascript_prettier.md#readme) | [JAVASCRIPT_PRETTIER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/javascript_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**JSX**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/jsx.md#readme) | [eslint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/jsx_eslint.md#readme) | [JSX_ESLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/jsx_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yannickcr/eslint-plugin-react)](https://github.com/yannickcr/eslint-plugin-react/commits) | -| | [**KOTLIN**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kotlin.md#readme) | [ktlint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kotlin_ktlint.md#readme) | [KOTLIN_KTLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kotlin_ktlint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/pinterest/ktlint)](https://github.com/pinterest/ktlint/commits) | -| | [**LUA**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/lua.md#readme) | [luacheck](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/lua_luacheck.md#readme) | [LUA_LUACHECK](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/lua_luacheck.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/luarocks/luacheck)](https://github.com/luarocks/luacheck/commits) | -| | [**PERL**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/perl.md#readme) | [perlcritic](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/perl_perlcritic.md#readme) | [PERL_PERLCRITIC](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/perl_perlcritic.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/Perl-Critic/Perl-Critic)](https://github.com/Perl-Critic/Perl-Critic/commits) | -| | [**PHP**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php.md#readme) | [php](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_php.md#readme) | [PHP_BUILTIN](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_php.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/php/php-src)](https://github.com/php/php-src/commits) | -| | | [phpcs](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_phpcs.md#readme) | [PHP_PHPCS](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_phpcs.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/squizlabs/PHP_CodeSniffer)](https://github.com/squizlabs/PHP_CodeSniffer/commits) | -| | | [phpstan](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_phpstan.md#readme) | [PHP_PHPSTAN](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_phpstan.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/phpstan/phpstan)](https://github.com/phpstan/phpstan/commits) | -| | | [psalm](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_psalm.md#readme) | [PHP_PSALM](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_psalm.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/vimeo/psalm)](https://github.com/vimeo/psalm/commits) | -| | | [phplint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_phplint.md#readme) | [PHP_PHPLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/php_phplint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/overtrue/phplint)](https://github.com/overtrue/phplint/commits) | -| | [**POWERSHELL**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/powershell.md#readme) | [powershell](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/powershell_powershell.md#readme) | [POWERSHELL_POWERSHELL](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/powershell_powershell.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PowerShell/PSScriptAnalyzer)](https://github.com/PowerShell/PSScriptAnalyzer/commits) | -| | [**PYTHON**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python.md#readme) | [pylint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_pylint.md#readme) | [PYTHON_PYLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_pylint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/pylint)](https://github.com/PyCQA/pylint/commits) | -| | | [black](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_black.md#readme) | [PYTHON_BLACK](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_black.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/psf/black)](https://github.com/psf/black/commits) | -| | | [flake8](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_flake8.md#readme) | [PYTHON_FLAKE8](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_flake8.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/flake8)](https://github.com/PyCQA/flake8/commits) | -| | | [isort](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_isort.md#readme) | [PYTHON_ISORT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_isort.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/isort)](https://github.com/PyCQA/isort/commits) | -| | | [bandit](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_bandit.md#readme) | [PYTHON_BANDIT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_bandit.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/PyCQA/bandit)](https://github.com/PyCQA/bandit/commits) | -| | | [mypy](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_mypy.md#readme) | [PYTHON_MYPY](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/python_mypy.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/python/mypy)](https://github.com/python/mypy/commits) | -| | [**R**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/r.md#readme) | [lintr](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/r_lintr.md#readme) | [R_LINTR](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/r_lintr.md#readme) | | | -| | [**RAKU**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/raku.md#readme) | [raku](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/raku_raku.md#readme) | [RAKU_RAKU](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/raku_raku.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rakudo/rakudo)](https://github.com/rakudo/rakudo/commits) | -| | [**RUBY**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/ruby.md#readme) | [rubocop](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/ruby_rubocop.md#readme) | [RUBY_RUBOCOP](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/ruby_rubocop.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/rubocop-hq/rubocop)](https://github.com/rubocop-hq/rubocop/commits) | -| | [**RUST**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rust.md#readme) | [clippy](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rust_clippy.md#readme) | [RUST_CLIPPY](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rust_clippy.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rust-lang/rust-clippy)](https://github.com/rust-lang/rust-clippy/commits) | -| | [**SALESFORCE**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/salesforce.md#readme) | [sfdx-scanner-apex](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_apex.md#readme) | [SALESFORCE_SFDX_SCANNER_APEX](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_apex.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | | [sfdx-scanner-aura](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_aura.md#readme) | [SALESFORCE_SFDX_SCANNER_AURA](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_aura.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | | [sfdx-scanner-lwc](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_lwc.md#readme) | [SALESFORCE_SFDX_SCANNER_LWC](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_lwc.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/forcedotcom/sfdx-scanner)](https://github.com/forcedotcom/sfdx-scanner/commits) | -| | [**SCALA**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/scala.md#readme) | [scalafix](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/scala_scalafix.md#readme) | [SCALA_SCALAFIX](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/scala_scalafix.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/scalacenter/scalafix)](https://github.com/scalacenter/scalafix/commits) | -| | [**SQL**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/sql.md#readme) | [sql-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/sql_sql_lint.md#readme) | [SQL_SQL_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/sql_sql_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/joereynolds/sql-lint)](https://github.com/joereynolds/sql-lint/commits) | -| | | [sqlfluff](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md#readme) | [SQL_SQLFLUFF](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sqlfluff/sqlfluff)](https://github.com/sqlfluff/sqlfluff/commits) | -| | | [tsqllint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/sql_tsqllint.md#readme) | [SQL_TSQLLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/sql_tsqllint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tsqllint/tsqllint)](https://github.com/tsqllint/tsqllint/commits) | -| | [**SWIFT**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/swift.md#readme) | [swiftlint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/swift_swiftlint.md#readme) | [SWIFT_SWIFTLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/swift_swiftlint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/realm/SwiftLint)](https://github.com/realm/SwiftLint/commits) | -| | [**TSX**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/tsx.md#readme) | [eslint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/tsx_eslint.md#readme) | [TSX_ESLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/tsx_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yannickcr/eslint-plugin-react)](https://github.com/yannickcr/eslint-plugin-react/commits) | -| | [**TYPESCRIPT**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/typescript.md#readme) | [eslint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/typescript_eslint.md#readme) | [TYPESCRIPT_ES](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/typescript_eslint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/eslint/eslint)](https://github.com/eslint/eslint/commits) | -| | | [standard](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/typescript_standard.md#readme) | [TYPESCRIPT_STANDARD](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/typescript_standard.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/standard/standard)](https://github.com/standard/standard/commits) | -| | | [prettier](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/typescript_prettier.md#readme) | [TYPESCRIPT_PRETTIER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/typescript_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**Visual Basic .NET** (VBDOTNET)](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/vbdotnet.md#readme) | [dotnet-format](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md#readme) | [VBDOTNET_DOTNET_FORMAT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotnet/format)](https://github.com/dotnet/format/commits) | +| | Language | Linter | Configuration key | Additional | +|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------:|----------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**BASH**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash.md#readme) | [bash-exec](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_bash_exec.md#readme) | [BASH_EXEC](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_bash_exec.md#readme) | | +| | | [shellcheck](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shellcheck.md#readme) | [BASH_SHELLCHECK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shellcheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/koalaman/shellcheck?cacheSeconds=3600)](https://github.com/koalaman/shellcheck) | +| | | [shfmt](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shfmt.md#readme) | [BASH_SHFMT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/bash_shfmt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/mvdan/sh?cacheSeconds=3600)](https://github.com/mvdan/sh) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**C**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c.md#readme) | [cpplint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cpplint.md#readme) | [C_CPPLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/c_cpplint.md#readme) | | +| | [**CLOJURE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure.md#readme) | [clj-kondo](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_clj_kondo.md#readme) | [CLOJURE_CLJ_KONDO](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/clojure_clj_kondo.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/borkdude/clj-kondo?cacheSeconds=3600)](https://github.com/borkdude/clj-kondo) | +| | [**COFFEE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee.md#readme) | [coffeelint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md#readme) | [COFFEE_COFFEELINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/coffee_coffeelint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/clutchski/coffeelint?cacheSeconds=3600)](https://github.com/clutchski/coffeelint) | +| | [**C++** (CPP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp.md#readme) | [cpplint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cpplint.md#readme) | [CPP_CPPLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cpp_cpplint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/cpplint/cpplint?cacheSeconds=3600)](https://github.com/cpplint/cpplint) | +| | [**C#** (CSHARP)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp.md#readme) | [dotnet-format](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md#readme) | [CSHARP_DOTNET_FORMAT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/csharp_dotnet_format.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/dotnet/format?cacheSeconds=3600)](https://github.com/dotnet/format) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**DART**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart.md#readme) | [dartanalyzer](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md#readme) | [DART_DARTANALYZER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dart_dartanalyzer.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/dart-lang/sdk?cacheSeconds=3600)](https://github.com/dart-lang/sdk) | +| | [**GO**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go.md#readme) | [golangci-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md#readme) | [GO_GOLANGCI_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_golangci_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/golangci/golangci-lint?cacheSeconds=3600)](https://github.com/golangci/golangci-lint) | +| | | [revive](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_revive.md#readme) | [GO_REVIVE](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/go_revive.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/mgechev/revive?cacheSeconds=3600)](https://github.com/mgechev/revive) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**GROOVY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy.md#readme) | [npm-groovy-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md#readme) | [GROOVY_NPM_GROOVY_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/groovy_npm_groovy_lint.md#readme) | [![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) | +| | [**JAVA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java.md#readme) | [checkstyle](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_checkstyle.md#readme) | [JAVA_CHECKSTYLE](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/java_checkstyle.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/checkstyle/checkstyle?cacheSeconds=3600)](https://github.com/checkstyle/checkstyle) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**JAVASCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript.md#readme) | [eslint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_eslint.md#readme) | [JAVASCRIPT_ES](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_eslint.md#readme) | [![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) | +| | | [standard](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_standard.md#readme) | [JAVASCRIPT_STANDARD](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_standard.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [prettier](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_prettier.md#readme) | [JAVASCRIPT_PRETTIER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/javascript_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**JSX**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx.md#readme) | [eslint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx_eslint.md#readme) | [JSX_ESLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/jsx_eslint.md#readme) | ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**KOTLIN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin.md#readme) | [ktlint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_ktlint.md#readme) | [KOTLIN_KTLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kotlin_ktlint.md#readme) | [![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) | +| | [**LUA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua.md#readme) | [luacheck](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_luacheck.md#readme) | [LUA_LUACHECK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/lua_luacheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/luarocks/luacheck?cacheSeconds=3600)](https://github.com/luarocks/luacheck) | +| | [**PERL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/perl.md#readme) | [perlcritic](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/perl_perlcritic.md#readme) | [PERL_PERLCRITIC](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/perl_perlcritic.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/Perl-Critic/Perl-Critic?cacheSeconds=3600)](https://github.com/Perl-Critic/Perl-Critic) | +| | [**PHP**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php.md#readme) | [phpcs](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phpcs.md#readme) | [PHP_PHPCS](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phpcs.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/squizlabs/PHP_CodeSniffer?cacheSeconds=3600)](https://github.com/squizlabs/PHP_CodeSniffer) | +| | | [phpstan](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phpstan.md#readme) | [PHP_PHPSTAN](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phpstan.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/phpstan/phpstan?cacheSeconds=3600)](https://github.com/phpstan/phpstan) | +| | | [psalm](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_psalm.md#readme) | [PHP_PSALM](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_psalm.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/vimeo/psalm?cacheSeconds=3600)](https://github.com/vimeo/psalm) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [phplint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phplint.md#readme) | [PHP_PHPLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/php_phplint.md#readme) | | +| | [**POWERSHELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/powershell.md#readme) | [powershell](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/powershell_powershell.md#readme) | [POWERSHELL_POWERSHELL](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/powershell_powershell.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PowerShell/PSScriptAnalyzer?cacheSeconds=3600)](https://github.com/PowerShell/PSScriptAnalyzer) | +| | [**PYTHON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python.md#readme) | [pylint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_pylint.md#readme) | [PYTHON_PYLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_pylint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/pylint?cacheSeconds=3600)](https://github.com/PyCQA/pylint) | +| | | [black](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_black.md#readme) | [PYTHON_BLACK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_black.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/psf/black?cacheSeconds=3600)](https://github.com/psf/black) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [flake8](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_flake8.md#readme) | [PYTHON_FLAKE8](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_flake8.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/flake8?cacheSeconds=3600)](https://github.com/PyCQA/flake8) | +| | | [isort](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_isort.md#readme) | [PYTHON_ISORT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_isort.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/isort?cacheSeconds=3600)](https://github.com/PyCQA/isort) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [bandit](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_bandit.md#readme) | [PYTHON_BANDIT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_bandit.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/PyCQA/bandit?cacheSeconds=3600)](https://github.com/PyCQA/bandit) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [mypy](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_mypy.md#readme) | [PYTHON_MYPY](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/python_mypy.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/python/mypy?cacheSeconds=3600)](https://github.com/python/mypy) | +| | [**R**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/r.md#readme) | [lintr](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/r_lintr.md#readme) | [R_LINTR](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/r_lintr.md#readme) | | +| | [**RAKU**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/raku.md#readme) | [raku](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/raku_raku.md#readme) | [RAKU_RAKU](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/raku_raku.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rakudo/rakudo?cacheSeconds=3600)](https://github.com/rakudo/rakudo) | +| | [**RUBY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ruby.md#readme) | [rubocop](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ruby_rubocop.md#readme) | [RUBY_RUBOCOP](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ruby_rubocop.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rubocop-hq/rubocop?cacheSeconds=3600)](https://github.com/rubocop-hq/rubocop) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**RUST**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rust.md#readme) | [clippy](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rust_clippy.md#readme) | [RUST_CLIPPY](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rust_clippy.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rust-lang/rust-clippy?cacheSeconds=3600)](https://github.com/rust-lang/rust-clippy) | +| | [**SALESFORCE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce.md#readme) | [sfdx-scanner-apex](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_apex.md#readme) | [SALESFORCE_SFDX_SCANNER_APEX](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_apex.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | | [sfdx-scanner-aura](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_aura.md#readme) | [SALESFORCE_SFDX_SCANNER_AURA](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_aura.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | | [sfdx-scanner-lwc](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_lwc.md#readme) | [SALESFORCE_SFDX_SCANNER_LWC](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/salesforce_sfdx_scanner_lwc.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/forcedotcom/sfdx-scanner?cacheSeconds=3600)](https://github.com/forcedotcom/sfdx-scanner) | +| | [**SCALA**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/scala.md#readme) | [scalafix](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/scala_scalafix.md#readme) | [SCALA_SCALAFIX](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/scala_scalafix.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/scalacenter/scalafix?cacheSeconds=3600)](https://github.com/scalacenter/scalafix) | +| | [**SQL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql.md#readme) | [sql-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sql_lint.md#readme) | [SQL_SQL_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sql_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/joereynolds/sql-lint?cacheSeconds=3600)](https://github.com/joereynolds/sql-lint) | +| | | [sqlfluff](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md#readme) | [SQL_SQLFLUFF](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_sqlfluff.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/sqlfluff/sqlfluff?cacheSeconds=3600)](https://github.com/sqlfluff/sqlfluff) | +| | | [tsqllint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_tsqllint.md#readme) | [SQL_TSQLLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/sql_tsqllint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/tsqllint/tsqllint?cacheSeconds=3600)](https://github.com/tsqllint/tsqllint) | +| | [**SWIFT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift.md#readme) | [swiftlint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md#readme) | [SWIFT_SWIFTLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/swift_swiftlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/realm/SwiftLint?cacheSeconds=3600)](https://github.com/realm/SwiftLint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**TSX**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tsx.md#readme) | [eslint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tsx_eslint.md#readme) | [TSX_ESLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tsx_eslint.md#readme) | ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**TYPESCRIPT**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript.md#readme) | [eslint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_eslint.md#readme) | [TYPESCRIPT_ES](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_eslint.md#readme) | [![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) | +| | | [standard](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_standard.md#readme) | [TYPESCRIPT_STANDARD](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_standard.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/standard/standard?cacheSeconds=3600)](https://github.com/standard/standard) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [prettier](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_prettier.md#readme) | [TYPESCRIPT_PRETTIER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/typescript_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**Visual Basic .NET** (VBDOTNET)](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet.md#readme) | [dotnet-format](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md#readme) | [VBDOTNET_DOTNET_FORMAT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/vbdotnet_dotnet_format.md#readme) | ![formatter](https://shields.io/badge/-format-yellow) | ### Formats -| | Format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------:|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**CSS**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/css.md#readme) | [stylelint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/css_stylelint.md#readme) | [CSS_STYLELINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/css_stylelint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/stylelint/stylelint)](https://github.com/stylelint/stylelint/commits) | -| | | [scss-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/css_scss_lint.md#readme) | [CSS_SCSS_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/css_scss_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/sds/scss-lint)](https://github.com/sds/scss-lint/commits) | -| | [**ENV**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/env.md#readme) | [dotenv-linter](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/env_dotenv_linter.md#readme) | [ENV_DOTENV_LINTER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/env_dotenv_linter.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dotenv-linter/dotenv-linter)](https://github.com/dotenv-linter/dotenv-linter/commits) | -| | [**GRAPHQL**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/graphql.md#readme) | [graphql-schema-linter](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/graphql_graphql_schema_linter.md#readme) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/graphql_graphql_schema_linter.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/cjoudrey/graphql-schema-linter)](https://github.com/cjoudrey/graphql-schema-linter/commits) | -| | [**HTML**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/html.md#readme) | [htmlhint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/html_htmlhint.md#readme) | [HTML_HTMLHINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/html_htmlhint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/htmlhint/HTMLHint)](https://github.com/htmlhint/HTMLHint/commits) | -| | [**JSON**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json.md#readme) | [jsonlint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_jsonlint.md#readme) | [JSON_JSONLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_jsonlint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/zaach/jsonlint)](https://github.com/zaach/jsonlint/commits) | -| | | [eslint-plugin-jsonc](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_eslint_plugin_jsonc.md#readme) | [JSON_ESLINT_PLUGIN_JSONC](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_eslint_plugin_jsonc.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/ota-meshi/eslint-plugin-jsonc)](https://github.com/ota-meshi/eslint-plugin-jsonc/commits) | -| | | [v8r](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_v8r.md#readme) | [JSON_V8R](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_v8r.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | -| | | [prettier](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_prettier.md#readme) | [JSON_PRETTIER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/json_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | [**LATEX**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/latex.md#readme) | [chktex](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/latex_chktex.md#readme) | [LATEX_CHKTEX](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/latex_chktex.md#readme) | | | -| | [**MARKDOWN**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown.md#readme) | [markdownlint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_markdownlint.md#readme) | [MARKDOWN_MARKDOWNLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_markdownlint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/DavidAnson/markdownlint)](https://github.com/DavidAnson/markdownlint/commits) | -| | | [remark-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_remark_lint.md#readme) | [MARKDOWN_REMARK_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_remark_lint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/remarkjs/remark-lint)](https://github.com/remarkjs/remark-lint/commits) | -| | | [markdown-link-check](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_markdown_link_check.md#readme) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_markdown_link_check.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/tcort/markdown-link-check)](https://github.com/tcort/markdown-link-check/commits) | -| | | [markdown-table-formatter](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_markdown_table_formatter.md#readme) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/markdown_markdown_table_formatter.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/nvuillam/markdown-table-formatter)](https://github.com/nvuillam/markdown-table-formatter/commits) | -| | [**PROTOBUF**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/protobuf.md#readme) | [protolint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/protobuf_protolint.md#readme) | [PROTOBUF_PROTOLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/protobuf_protolint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/yoheimuta/protolint)](https://github.com/yoheimuta/protolint/commits) | -| | [**RST**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rst.md#readme) | [rst-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rst_rst_lint.md#readme) | [RST_RST_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rst_rst_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/twolfson/restructuredtext-lint)](https://github.com/twolfson/restructuredtext-lint/commits) | -| | | [rstcheck](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rst_rstcheck.md#readme) | [RST_RSTCHECK](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rst_rstcheck.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/myint/rstcheck)](https://github.com/myint/rstcheck/commits) | -| | | [rstfmt](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rst_rstfmt.md#readme) | [RST_RSTFMT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/rst_rstfmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/dzhu/rstfmt)](https://github.com/dzhu/rstfmt/commits) | -| | [**XML**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/xml.md#readme) | [xmllint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/xml_xmllint.md#readme) | [XML_XMLLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/xml_xmllint.md#readme) | | | -| | [**YAML**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/yaml.md#readme) | [prettier](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/yaml_prettier.md#readme) | [YAML_PRETTIER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/yaml_prettier.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/prettier/prettier)](https://github.com/prettier/prettier/commits) | -| | | [yamllint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/yaml_yamllint.md#readme) | [YAML_YAMLLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/yaml_yamllint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/adrienverge/yamllint)](https://github.com/adrienverge/yamllint/commits) | -| | | [v8r](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/yaml_v8r.md#readme) | [YAML_V8R](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/yaml_v8r.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/chris48s/v8r)](https://github.com/chris48s/v8r/commits) | +| | Format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**CSS**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/css.md#readme) | [stylelint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/css_stylelint.md#readme) | [CSS_STYLELINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/css_stylelint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/stylelint/stylelint?cacheSeconds=3600)](https://github.com/stylelint/stylelint) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [scss-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/css_scss_lint.md#readme) | [CSS_SCSS_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/css_scss_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/sds/scss-lint?cacheSeconds=3600)](https://github.com/sds/scss-lint) | +| | [**ENV**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/env.md#readme) | [dotenv-linter](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/env_dotenv_linter.md#readme) | [ENV_DOTENV_LINTER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/env_dotenv_linter.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/dotenv-linter/dotenv-linter?cacheSeconds=3600)](https://github.com/dotenv-linter/dotenv-linter) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**GRAPHQL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/graphql.md#readme) | [graphql-schema-linter](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/graphql_graphql_schema_linter.md#readme) | [GRAPHQL_GRAPHQL_SCHEMA_LINTER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/graphql_graphql_schema_linter.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/cjoudrey/graphql-schema-linter?cacheSeconds=3600)](https://github.com/cjoudrey/graphql-schema-linter) | +| | [**HTML**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/html.md#readme) | [htmlhint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/html_htmlhint.md#readme) | [HTML_HTMLHINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/html_htmlhint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/htmlhint/HTMLHint?cacheSeconds=3600)](https://github.com/htmlhint/HTMLHint) | +| | [**JSON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json.md#readme) | [jsonlint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_jsonlint.md#readme) | [JSON_JSONLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_jsonlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/zaach/jsonlint?cacheSeconds=3600)](https://github.com/zaach/jsonlint) | +| | | [eslint-plugin-jsonc](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_eslint_plugin_jsonc.md#readme) | [JSON_ESLINT_PLUGIN_JSONC](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_eslint_plugin_jsonc.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/ota-meshi/eslint-plugin-jsonc?cacheSeconds=3600)](https://github.com/ota-meshi/eslint-plugin-jsonc) ![autofix](https://shields.io/badge/-autofix-green) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [v8r](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_v8r.md#readme) | [JSON_V8R](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_v8r.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | +| | | [prettier](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_prettier.md#readme) | [JSON_PRETTIER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/json_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**LATEX**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/latex.md#readme) | [chktex](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/latex_chktex.md#readme) | [LATEX_CHKTEX](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/latex_chktex.md#readme) | | +| | [**MARKDOWN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown.md#readme) | [markdownlint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdownlint.md#readme) | [MARKDOWN_MARKDOWNLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdownlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/DavidAnson/markdownlint?cacheSeconds=3600)](https://github.com/DavidAnson/markdownlint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [remark-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_remark_lint.md#readme) | [MARKDOWN_REMARK_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_remark_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/remarkjs/remark-lint?cacheSeconds=3600)](https://github.com/remarkjs/remark-lint) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [markdown-link-check](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdown_link_check.md#readme) | [MARKDOWN_MARKDOWN_LINK_CHECK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdown_link_check.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/tcort/markdown-link-check?cacheSeconds=3600)](https://github.com/tcort/markdown-link-check) | +| | | [markdown-table-formatter](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdown_table_formatter.md#readme) | [MARKDOWN_MARKDOWN_TABLE_FORMATTER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/markdown_markdown_table_formatter.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/nvuillam/markdown-table-formatter?cacheSeconds=3600)](https://github.com/nvuillam/markdown-table-formatter) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**PROTOBUF**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/protobuf.md#readme) | [protolint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/protobuf_protolint.md#readme) | [PROTOBUF_PROTOLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/protobuf_protolint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/yoheimuta/protolint?cacheSeconds=3600)](https://github.com/yoheimuta/protolint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**RST**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst.md#readme) | [rst-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rst_lint.md#readme) | [RST_RST_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rst_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/twolfson/restructuredtext-lint?cacheSeconds=3600)](https://github.com/twolfson/restructuredtext-lint) | +| | | [rstcheck](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rstcheck.md#readme) | [RST_RSTCHECK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/rst_rstcheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/myint/rstcheck?cacheSeconds=3600)](https://github.com/myint/rstcheck) | +| | [**XML**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/xml.md#readme) | [xmllint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/xml_xmllint.md#readme) | [XML_XMLLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/xml_xmllint.md#readme) | | +| | [**YAML**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml.md#readme) | [prettier](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_prettier.md#readme) | [YAML_PRETTIER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_prettier.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/prettier/prettier?cacheSeconds=3600)](https://github.com/prettier/prettier) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [yamllint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_yamllint.md#readme) | [YAML_YAMLLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_yamllint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/adrienverge/yamllint?cacheSeconds=3600)](https://github.com/adrienverge/yamllint) | +| | | [v8r](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_v8r.md#readme) | [YAML_V8R](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/yaml_v8r.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/chris48s/v8r?cacheSeconds=3600)](https://github.com/chris48s/v8r) | ### Tooling formats -| | Tooling format | Linter | Configuration key | Format/Fix | Status | -|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**ACTION**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/action.md#readme) | [actionlint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/action_actionlint.md#readme) | [ACTION_ACTIONLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/action_actionlint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/rhysd/actionlint)](https://github.com/rhysd/actionlint/commits) | -| | [**ANSIBLE**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/ansible.md#readme) | [ansible-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md#readme) | [ANSIBLE_ANSIBLE_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/ansible/ansible-lint)](https://github.com/ansible/ansible-lint/commits) | -| | [**ARM**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/arm.md#readme) | [arm-ttk](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md#readme) | [ARM_ARM_TTK](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/Azure/arm-ttk)](https://github.com/Azure/arm-ttk/commits) | -| | [**CLOUDFORMATION**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/cloudformation.md#readme) | [cfn-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md#readme) | [CLOUDFORMATION_CFN_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/martysweet/cfn-lint)](https://github.com/martysweet/cfn-lint/commits) | -| | [**DOCKERFILE**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dockerfile.md#readme) | [dockerfilelint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dockerfile_dockerfilelint.md#readme) | [DOCKERFILE_DOCKERFILELINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dockerfile_dockerfilelint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/replicatedhq/dockerfilelint)](https://github.com/replicatedhq/dockerfilelint/commits) | -| | | [hadolint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md#readme) | [DOCKERFILE_HADOLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/hadolint/hadolint)](https://github.com/hadolint/hadolint/commits) | -| | [**EDITORCONFIG**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/editorconfig.md#readme) | [editorconfig-checker](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md#readme) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/editorconfig-checker/editorconfig-checker)](https://github.com/editorconfig-checker/editorconfig-checker/commits) | -| | [**GHERKIN**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/gherkin.md#readme) | [gherkin-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md#readme) | [GHERKIN_GHERKIN_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/vsiakka/gherkin-lint)](https://github.com/vsiakka/gherkin-lint/commits) | -| | [**KUBERNETES**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kubernetes.md#readme) | [kubeval](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kubernetes_kubeval.md#readme) | [KUBERNETES_KUBEVAL](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kubernetes_kubeval.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/instrumenta/kubeval)](https://github.com/instrumenta/kubeval/commits) | -| | | [kubeconform](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md#readme) | [KUBERNETES_KUBECONFORM](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/yannh/kubeconform)](https://github.com/yannh/kubeconform/commits) | -| | [**OPENAPI**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/openapi.md#readme) | [spectral](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/openapi_spectral.md#readme) | [OPENAPI_SPECTRAL](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/openapi_spectral.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/stoplightio/spectral)](https://github.com/stoplightio/spectral/commits) | -| | [**PUPPET**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/puppet.md#readme) | [puppet-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md#readme) | [PUPPET_PUPPET_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/rodjek/puppet-lint)](https://github.com/rodjek/puppet-lint/commits) | -| | [**SNAKEMAKE**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/snakemake.md#readme) | [snakemake](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md#readme) | [SNAKEMAKE_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakemake)](https://github.com/snakemake/snakemake/commits) | -| | | [snakefmt](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md#readme) | [SNAKEMAKE_SNAKEFMT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/snakemake/snakefmt)](https://github.com/snakemake/snakefmt/commits) | -| | [**TEKTON**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/tekton.md#readme) | [tekton-lint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md#readme) | [TEKTON_TEKTON_LINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/IBM/tekton-lint)](https://github.com/IBM/tekton-lint/commits) | -| | [**TERRAFORM**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform.md#readme) | [tflint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_tflint.md#readme) | [TERRAFORM_TFLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_tflint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/terraform-linters/tflint)](https://github.com/terraform-linters/tflint/commits) | -| | | [terrascan](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_terrascan.md#readme) | [TERRAFORM_TERRASCAN](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_terrascan.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/accurics/terrascan)](https://github.com/accurics/terrascan/commits) | -| | | [terragrunt](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md#readme) | [TERRAFORM_TERRAGRUNT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/gruntwork-io/terragrunt)](https://github.com/gruntwork-io/terragrunt/commits) | -| | | [terraform-fmt](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md#readme) | [TERRAFORM_TERRAFORM_FMT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/hashicorp/terraform)](https://github.com/hashicorp/terraform/commits) | -| | | [checkov](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_checkov.md#readme) | [TERRAFORM_CHECKOV](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_checkov.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/bridgecrewio/checkov)](https://github.com/bridgecrewio/checkov/commits) | -| | | [kics](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_kics.md#readme) | [TERRAFORM_KICS](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/terraform_kics.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/checkmarx/kics)](https://github.com/checkmarx/kics/commits) | +| | Tooling format | Linter | Configuration key | Additional | +|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**ACTION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action.md#readme) | [actionlint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md#readme) | [ACTION_ACTIONLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/action_actionlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rhysd/actionlint?cacheSeconds=3600)](https://github.com/rhysd/actionlint) | +| | [**ANSIBLE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible.md#readme) | [ansible-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md#readme) | [ANSIBLE_ANSIBLE_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/ansible_ansible_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/ansible/ansible-lint?cacheSeconds=3600)](https://github.com/ansible/ansible-lint) | +| | [**ARM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm.md#readme) | [arm-ttk](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md#readme) | [ARM_ARM_TTK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/arm_arm_ttk.md#readme) | | +| | [**CLOUDFORMATION**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation.md#readme) | [cfn-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md#readme) | [CLOUDFORMATION_CFN_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/cloudformation_cfn_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/aws-cloudformation/cfn-lint?cacheSeconds=3600)](https://github.com/aws-cloudformation/cfn-lint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**DOCKERFILE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile.md#readme) | [hadolint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md#readme) | [DOCKERFILE_HADOLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/dockerfile_hadolint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/hadolint/hadolint?cacheSeconds=3600)](https://github.com/hadolint/hadolint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**EDITORCONFIG**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig.md#readme) | [editorconfig-checker](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md#readme) | [EDITORCONFIG_EDITORCONFIG_CHECKER](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/editorconfig_editorconfig_checker.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/editorconfig-checker/editorconfig-checker?cacheSeconds=3600)](https://github.com/editorconfig-checker/editorconfig-checker) | +| | [**GHERKIN**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin.md#readme) | [gherkin-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md#readme) | [GHERKIN_GHERKIN_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/gherkin_gherkin_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/vsiakka/gherkin-lint?cacheSeconds=3600)](https://github.com/vsiakka/gherkin-lint) | +| | [**KUBERNETES**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes.md#readme) | [kubeval](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeval.md#readme) | [KUBERNETES_KUBEVAL](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeval.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/instrumenta/kubeval?cacheSeconds=3600)](https://github.com/instrumenta/kubeval) | +| | | [kubeconform](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md#readme) | [KUBERNETES_KUBECONFORM](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/kubernetes_kubeconform.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/yannh/kubeconform?cacheSeconds=3600)](https://github.com/yannh/kubeconform) | +| | [**OPENAPI**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi.md#readme) | [spectral](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md#readme) | [OPENAPI_SPECTRAL](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/openapi_spectral.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/stoplightio/spectral?cacheSeconds=3600)](https://github.com/stoplightio/spectral) | +| | [**PUPPET**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet.md#readme) | [puppet-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md#readme) | [PUPPET_PUPPET_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/puppet_puppet_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/rodjek/puppet-lint?cacheSeconds=3600)](https://github.com/rodjek/puppet-lint) ![autofix](https://shields.io/badge/-autofix-green) | +| | [**SNAKEMAKE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake.md#readme) | [snakemake](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md#readme) | [SNAKEMAKE_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakemake.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakemake?cacheSeconds=3600)](https://github.com/snakemake/snakemake) | +| | | [snakefmt](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md#readme) | [SNAKEMAKE_SNAKEFMT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/snakemake_snakefmt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/snakemake/snakefmt?cacheSeconds=3600)](https://github.com/snakemake/snakefmt) ![formatter](https://shields.io/badge/-format-yellow) | +| | [**TEKTON**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton.md#readme) | [tekton-lint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md#readme) | [TEKTON_TEKTON_LINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/tekton_tekton_lint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/IBM/tekton-lint?cacheSeconds=3600)](https://github.com/IBM/tekton-lint) | +| | [**TERRAFORM**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform.md#readme) | [tflint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md#readme) | [TERRAFORM_TFLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_tflint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/terraform-linters/tflint?cacheSeconds=3600)](https://github.com/terraform-linters/tflint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [terrascan](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md#readme) | [TERRAFORM_TERRASCAN](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terrascan.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/accurics/terrascan?cacheSeconds=3600)](https://github.com/accurics/terrascan) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [terragrunt](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md#readme) | [TERRAFORM_TERRAGRUNT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terragrunt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/gruntwork-io/terragrunt?cacheSeconds=3600)](https://github.com/gruntwork-io/terragrunt) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [terraform-fmt](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md#readme) | [TERRAFORM_TERRAFORM_FMT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_terraform_fmt.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/hashicorp/terraform?cacheSeconds=3600)](https://github.com/hashicorp/terraform) ![formatter](https://shields.io/badge/-format-yellow) | +| | | [checkov](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_checkov.md#readme) | [TERRAFORM_CHECKOV](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_checkov.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/bridgecrewio/checkov?cacheSeconds=3600)](https://github.com/bridgecrewio/checkov) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [kics](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_kics.md#readme) | [TERRAFORM_KICS](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/terraform_kics.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/checkmarx/kics?cacheSeconds=3600)](https://github.com/checkmarx/kics) | ### Other -| | Code quality checker | Linter | Configuration key | Format/Fix | Status | -|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|--------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|:------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:| -| | [**COPYPASTE**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/copypaste.md#readme) | [jscpd](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md#readme) | [COPYPASTE_JSCPD](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/kucherenko/jscpd)](https://github.com/kucherenko/jscpd/commits) | -| | [**CREDENTIALS**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/credentials.md#readme) | [secretlint](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/credentials_secretlint.md#readme) | [CREDENTIALS_SECRETLINT](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/credentials_secretlint.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/secretlint/secretlint)](https://github.com/secretlint/secretlint/commits) | -| | [**GIT**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/git.md#readme) | [git_diff](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/git_git_diff.md#readme) | [GIT_GIT_DIFF](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/git_git_diff.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/git/git)](https://github.com/git/git/commits) | -| | [**SPELL**](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/spell.md#readme) | [misspell](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/spell_misspell.md#readme) | [SPELL_MISSPELL](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/spell_misspell.md#readme) | :heavy_check_mark: | [![GitHub last commit](https://img.shields.io/github/last-commit/client9/misspell)](https://github.com/client9/misspell/commits) | -| | | [cspell](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/spell_cspell.md#readme) | [SPELL_CSPELL](https://github.com/megalinter/megalinter/tree/main/docs/descriptors/spell_cspell.md#readme) | | [![GitHub last commit](https://img.shields.io/github/last-commit/streetsidesoftware/cspell)](https://github.com/streetsidesoftware/cspell/commits) | +| | Code quality checker | Linter | Configuration key | Additional | +|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------:|------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| +| | [**COPYPASTE**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste.md#readme) | [jscpd](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md#readme) | [COPYPASTE_JSCPD](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/copypaste_jscpd.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/kucherenko/jscpd?cacheSeconds=3600)](https://github.com/kucherenko/jscpd) | +| | [**REPOSITORY**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository.md#readme) | [devskim](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md#readme) | [REPOSITORY_DEVSKIM](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_devskim.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/microsoft/DevSkim?cacheSeconds=3600)](https://github.com/microsoft/DevSkim) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [dustilock](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md#readme) | [REPOSITORY_DUSTILOCK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_dustilock.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/Checkmarx/dustilock?cacheSeconds=3600)](https://github.com/Checkmarx/dustilock) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [git_diff](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md#readme) | [REPOSITORY_GIT_DIFF](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_git_diff.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/git/git?cacheSeconds=3600)](https://github.com/git/git) | +| | | [gitleaks](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md#readme) | [REPOSITORY_GITLEAKS](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_gitleaks.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/zricethezav/gitleaks?cacheSeconds=3600)](https://github.com/zricethezav/gitleaks) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [goodcheck](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_goodcheck.md#readme) | [REPOSITORY_GOODCHECK](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_goodcheck.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/sider/goodcheck?cacheSeconds=3600)](https://github.com/sider/goodcheck) | +| | | [secretlint](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md#readme) | [REPOSITORY_SECRETLINT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_secretlint.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/secretlint/secretlint?cacheSeconds=3600)](https://github.com/secretlint/secretlint) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [semgrep](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md#readme) | [REPOSITORY_SEMGREP](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_semgrep.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/returntocorp/semgrep?cacheSeconds=3600)](https://github.com/returntocorp/semgrep) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [syft](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md#readme) | [REPOSITORY_SYFT](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_syft.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/anchore/syft?cacheSeconds=3600)](https://github.com/anchore/syft) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | | [trivy](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md#readme) | [REPOSITORY_TRIVY](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/repository_trivy.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/aquasecurity/trivy?cacheSeconds=3600)](https://github.com/aquasecurity/trivy) ![sarif](https://shields.io/badge/-SARIF-orange) | +| | [**SPELL**](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell.md#readme) | [misspell](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_misspell.md#readme) | [SPELL_MISSPELL](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_misspell.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/client9/misspell?cacheSeconds=3600)](https://github.com/client9/misspell) ![autofix](https://shields.io/badge/-autofix-green) | +| | | [cspell](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md#readme) | [SPELL_CSPELL](https://github.com/oxsecurity/megalinter/tree/main/docs/descriptors/spell_cspell.md#readme) | [![GitHub stars](https://img.shields.io/github/stars/streetsidesoftware/cspell?cacheSeconds=3600)](https://github.com/streetsidesoftware/cspell) | diff --git a/mega-linter-runner/generators/mega-linter/index.js b/mega-linter-runner/generators/mega-linter/index.js index 5ca6f018e4b..a9f804ebd1d 100644 --- a/mega-linter-runner/generators/mega-linter/index.js +++ b/mega-linter-runner/generators/mega-linter/index.js @@ -1,17 +1,14 @@ "use strict"; const Generator = require("yeoman-generator"); -const chalk = require("chalk"); -const yosay = require("yosay"); +const { asciiArt } = require("../../lib/ascii"); +const { OxSecuritySetup } = require("../../lib/ox-setup"); module.exports = class extends Generator { prompting() { - // Have Yeoman greet the user. + console.log(asciiArt()); this.log( - yosay( - `Welcome to the ${chalk.red( - "MegaLinter" - )} configuration generator !\n When you don't know, please use default values` - ) + `Welcome to the MegaLinter configuration generator ! +When you don't know what option to select, please use default values` ); const prompts = [ @@ -70,9 +67,9 @@ module.exports = class extends Generator { type: "list", name: "version", message: "Which MegaLinter version do you want to use ?", - default: "v5", + default: "v6", choices: [ - { name: "v5 (Latest official release)", value: "v5" }, + { name: "v6 (Latest official release)", value: "v6" }, { name: "Beta (main branch of MegaLinter repository)", value: "beta", @@ -123,6 +120,13 @@ module.exports = class extends Generator { message: "Do you want to see elapsed time by linter in logs ?", default: true, }, + { + type: "confirm", + name: "ox", + message: + "Do you want to connect to OX Security to secure your repository ?", + default: false, + }, ]; return this.prompt(prompts).then((props) => { @@ -139,7 +143,7 @@ module.exports = class extends Generator { this._generateAzurePipelines(); if (this.props.ci === "other") { this.log( - "Please follow manual instructions to define CI job at https://megalinter.github.io/installation/" + "Please follow manual instructions to define CI job at https://oxsecurity.github.io/megalinter/installation/" ); this.log( "You may call `npx mega-linter-runner` to run MegaLinter from any system (requires node.js & docker)" @@ -151,6 +155,12 @@ module.exports = class extends Generator { this._generateCSpellConfig(); // Generate .jscpd.json config this._generateJsCpdConfig(); + // Create/update .gitignore + this._manageGitIgnore(); + // Process linking to ox.security service + if (this.props.ox === true) { + new OxSecuritySetup().run(); + } } end() { @@ -163,17 +173,17 @@ module.exports = class extends Generator { _computeValues() { // Flavor if (this.props.flavor === "all") { - this.gitHubActionName = "megalinter/megalinter"; - this.dockerImageName = "megalinter/megalinter"; + this.gitHubActionName = "oxsecurity/megalinter"; + this.dockerImageName = "oxsecurity/megalinter"; } else { this.gitHubActionName = - "megalinter/megalinter/flavors/" + this.props.flavor; - this.dockerImageName = "megalinter/megalinter-" + this.props.flavor; + "oxsecurity/megalinter/flavors/" + this.props.flavor; + this.dockerImageName = "oxsecurity/megalinter-" + this.props.flavor; } // Version - if (this.props.version == "v5") { - this.gitHubActionVersion = "v5"; - this.dockerImageVersion = "v5"; + if (this.props.version == "v6") { + this.gitHubActionVersion = "v6"; + this.dockerImageVersion = "v6"; } else { this.gitHubActionVersion = "beta"; this.dockerImageVersion = "beta"; @@ -227,7 +237,7 @@ module.exports = class extends Generator { return; } this.log( - "Jenkinsfile config generation not implemented yet, please follow manual instructions at https://megalinter.github.io/installation/#jenkins" + "Jenkinsfile config generation not implemented yet, please follow manual instructions at https://oxsecurity.github.io/megalinter/installation/#jenkins" ); } @@ -251,7 +261,7 @@ module.exports = class extends Generator { return; } this.log( - "Azure pipelines config generation not implemented yet, please follow manual instructions at https://megalinter.github.io/installation/#gitlab" + "Azure pipelines config generation not implemented yet, please follow manual instructions at https://oxsecurity.github.io/megalinter/installation/#gitlab" ); } @@ -292,4 +302,24 @@ module.exports = class extends Generator { {} ); } + + // Create or update .gitignore files + _manageGitIgnore() { + const gitIgnoreFile = this.destinationPath(".gitignore"); + let gitIgnoreTextLines = []; + let doWrite = false; + if (this.fs.exists(gitIgnoreFile)) { + gitIgnoreTextLines = this.fs.read(gitIgnoreFile).split(/\r?\n/); + } + if (!gitIgnoreTextLines.includes("megalinter-reports/")) { + gitIgnoreTextLines.push("megalinter-reports/"); + doWrite = true; + } + if (doWrite) { + this.fs.write(gitIgnoreFile, gitIgnoreTextLines.join("\n") + "\n"); + this.log( + "Updated .gitignore file to exclude megalinter-reports from commits" + ); + } + } }; diff --git a/mega-linter-runner/generators/mega-linter/templates/.gitlab-ci.yml b/mega-linter-runner/generators/mega-linter/templates/.gitlab-ci.yml index b3c5d2b625e..36adb24b921 100644 --- a/mega-linter-runner/generators/mega-linter/templates/.gitlab-ci.yml +++ b/mega-linter-runner/generators/mega-linter/templates/.gitlab-ci.yml @@ -1,15 +1,15 @@ # MegaLinter GitLab CI job configuration file -# More info at https://megalinter.github.io +# More info at https://oxsecurity.github.io/megalinter mega-linter: stage: test # You can override MegaLinter flavor used to have faster performances - # More info at https://megalinter.github.io/flavors/ + # More info at https://oxsecurity.github.io/megalinter/flavors/ image: <%= DOCKER_IMAGE_NAME %>:<%= DOCKER_IMAGE_VERSION %> script: ["true"] # if script: ["true"] does not work, you may try -> script: [ "/bin/bash /entrypoint.sh" ] variables: # All available variables are described in documentation - # https://megalinter.github.io/configuration/ + # https://oxsecurity.github.io/megalinter/configuration/ DEFAULT_WORKSPACE: $CI_PROJECT_DIR # ADD YOUR CUSTOM ENV VARIABLES HERE TO OVERRIDE VALUES OF .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY artifacts: diff --git a/mega-linter-runner/generators/mega-linter/templates/.mega-linter.yml b/mega-linter-runner/generators/mega-linter/templates/.mega-linter.yml index 898111c7a44..957588c1e41 100644 --- a/mega-linter-runner/generators/mega-linter/templates/.mega-linter.yml +++ b/mega-linter-runner/generators/mega-linter/templates/.mega-linter.yml @@ -1,5 +1,5 @@ # Configuration file for MegaLinter -# See all available variables at https://megalinter.github.io/configuration/ and in linters documentation +# See all available variables at https://oxsecurity.github.io/megalinter/configuration/ and in linters documentation APPLY_FIXES: <%= APPLY_FIXES %> # all, none, or list of linter keys # ENABLE: # If you use ENABLE variable, all other languages/formats/tooling-formats will be disabled by default diff --git a/mega-linter-runner/generators/mega-linter/templates/mega-linter.yml b/mega-linter-runner/generators/mega-linter/templates/mega-linter.yml index 42491c3add4..b48510b080a 100644 --- a/mega-linter-runner/generators/mega-linter/templates/mega-linter.yml +++ b/mega-linter-runner/generators/mega-linter/templates/mega-linter.yml @@ -1,6 +1,6 @@ --- # MegaLinter GitHub Action configuration file -# More info at https://megalinter.github.io +# More info at https://oxsecurity.github.io/megalinter name: MegaLinter on: @@ -35,11 +35,11 @@ jobs: - name: MegaLinter id: ml # You can override MegaLinter flavor used to have faster performances - # More info at https://megalinter.github.io/flavors/ + # More info at https://oxsecurity.github.io/megalinter/flavors/ uses: <%= GITHUB_ACTION_NAME %>@<%= GITHUB_ACTION_VERSION %> env: # All available variables are described in documentation - # https://megalinter.github.io/configuration/ + # https://oxsecurity.github.io/megalinter/configuration/ VALIDATE_ALL_CODEBASE: <%= VALIDATE_ALL_CODE_BASE_GHA %> GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # ADD YOUR CUSTOM ENV VARIABLES HERE TO OVERRIDE VALUES OF .mega-linter.yml AT THE ROOT OF YOUR REPOSITORY @@ -51,7 +51,7 @@ jobs: with: name: MegaLinter reports path: | - report + megalinter-reports mega-linter.log # Create pull request if applicable (for now works only on PR from same repository, not from forks) diff --git a/mega-linter-runner/lib/ascii.js b/mega-linter-runner/lib/ascii.js new file mode 100644 index 00000000000..d4d9eca1951 --- /dev/null +++ b/mega-linter-runner/lib/ascii.js @@ -0,0 +1,27 @@ +function asciiArt() { + return ` + .:oool' ,looo; + .xNXNXl .dXNNXo. + lXXXX0c. 'oKXXN0; + .oKNXNX0kxdddddddoc,. .;lodddddddxk0XXXX0c + .:kKXXXXXXXXXXXXNXX0dllx0XXXXXXXXXXXXXXXKd, + .,cdkOOOOOOOO0KXXXXXXXXXXK0OOOOOOOkxo:' + 'ckKXNNNXkc' + ':::::;. .c0XX0l. .;::::;. + 'xXXXXXx' :kx: ;OXXXXKd. + .dKNNXXO; .. :0XXXXKl. + .lKXXXX0: .lKXXXX0: + :0XXXXKl. .dXXXXXk, + ;kXXXXKd:cxXXXXXx' + 'xXNXXXXXXXXXKo. + .oKXXXXNXXX0l. + .lKNNXNNXO: + ,looool' + +========================================================== +============= MegaLinter, by OX Security ============= +========================================================== +`; +} + +module.exports = { asciiArt }; diff --git a/mega-linter-runner/lib/config.js b/mega-linter-runner/lib/config.js new file mode 100644 index 00000000000..7e1f6c61674 --- /dev/null +++ b/mega-linter-runner/lib/config.js @@ -0,0 +1,20 @@ +const path = require("path"); + +const OX_PROTOCOL = process.env.OX_PROTOCOL || "https"; +const OX_BASE_URL = + process.env.OX_BASE_URL || `${OX_PROTOCOL}://app.ox.security`; +const OX_PORT = process.env.OX_PORT || 443; +const OX_LOGIN_URL = `${OX_BASE_URL}:${OX_PORT}/login`; +const OX_REPO_LOCAL_CONFIG_FILE = + process.OX_REPO_AUTH_FILE || path.join(process.cwd(), ".ox/auth.json"); +const ALLOWED_ORIGINS = { + "https://app.ox.security:443": true, +}; + +module.exports = { + OX_BASE_URL, + OX_PORT, + OX_LOGIN_URL, + ALLOWED_ORIGINS, + OX_REPO_LOCAL_CONFIG_FILE, +}; diff --git a/mega-linter-runner/lib/ox-setup.js b/mega-linter-runner/lib/ox-setup.js new file mode 100644 index 00000000000..e195c2fc2ec --- /dev/null +++ b/mega-linter-runner/lib/ox-setup.js @@ -0,0 +1,43 @@ +// const uuid = require("uuid"); +const { OX_LOGIN_URL } = require("./config"); +const open = require("open"); + +// Class to setup Ox security on the repository +class OxSecuritySetup { + // Open Ox registration page + // Once SSO (managed internally by Ox app) is performed, we'll receive an ox token in response + async run() { + //,this.clientToken = uuid.v4(); // generate a random key + const registerUrl = OX_LOGIN_URL + "?ml=true"; + // console.log(`Waiting for response from Ox.security app...`); + open(registerUrl); + } + + /* + + // Handle response from ox server + async handleResponse(body) { + // Check if the response contains the sent clientToken + if (body.clientToken !== this.clientToken) { + throw new Error("Client token error"); + } + if (body.oxToken) { + await this.storeOxToken(body.oxToken); + } + } + + // Store ox token in local config file + async storeOxToken(oxToken) { + const oxAuthInfo = fs.existsSync(OX_REPO_LOCAL_CONFIG_FILE) + ? fs.readJSONSync(OX_REPO_LOCAL_CONFIG_FILE) + : {}; + oxAuthInfo.oxToken = oxToken; + // Make sure ox directory is not existing + fs.ensureDir(path.dirname(OX_REPO_LOCAL_CONFIG_FILE)); + await fs.writeJSON(OX_REPO_LOCAL_CONFIG_FILE, oxAuthInfo); + console.log(`Written Ox token in ${OX_REPO_LOCAL_CONFIG_FILE}`); + } + */ +} + +module.exports = { OxSecuritySetup }; diff --git a/mega-linter-runner/lib/upgrade.js b/mega-linter-runner/lib/upgrade.js index fe0c6b74f3d..42f319f1421 100644 --- a/mega-linter-runner/lib/upgrade.js +++ b/mega-linter-runner/lib/upgrade.js @@ -2,7 +2,11 @@ "use strict"; const glob = require("glob-promise"); const fs = require("fs-extra"); +const path = require("path"); const c = require("chalk"); +const prompts = require("prompts"); +const { OxSecuritySetup } = require("./ox-setup"); +const { asciiArt } = require("./ascii"); class MegaLinterUpgrader { constructor() { @@ -220,10 +224,165 @@ jobs: build: `, }, + // V5 to V6 migration rules + // GitHub actions + { + regex: /actions\/checkout@v2/gm, + replacement: "actions/checkout@v3", + test: "uses: actions/checkout@v2", + testRes: "uses: actions/checkout@v3", + }, + // Documentation base URL + { + regex: /https:\/\/megalinter\.github\.io/gm, + replacement: "https://oxsecurity.github.io/megalinter", + test: "https://megalinter.github.io/configuration", + testRes: "https://oxsecurity.github.io/megalinter/configuration", + }, + // Github actions flavors + { + regex: /megalinter\/megalinter\/flavors\/([a-z]*)@v5\.(.*)/gm, + replacement: "oxsecurity/megalinter/flavors/$1@v6", + test: "megalinter/megalinter/flavors/python@v5.1.2", + testRes: "oxsecurity/megalinter/flavors/python@v6", + }, + { + regex: /megalinter\/megalinter\/flavors\/([a-z]*)@v5/gm, + replacement: "oxsecurity/megalinter/flavors/$1@v6", + test: "megalinter/megalinter/flavors/python@v5", + testRes: "oxsecurity/megalinter/flavors/python@v6", + }, + { + regex: /megalinter\/megalinter\/flavors\/([a-z]*)@([a-z]*)/gm, + replacement: "oxsecurity/megalinter/flavors/$1@$2", + test: "megalinter/megalinter/flavors/python@alpha", + testRes: "oxsecurity/megalinter/flavors/python@alpha", + }, + { + regex: /megalinter\/megalinter\/flavors\/([a-z]*)/gm, + replacement: "oxsecurity/megalinter/flavors/$1", + test: "megalinter/megalinter/flavors/python", + testRes: "oxsecurity/megalinter/flavors/python", + }, + // Docker image flavors + { + regex: /megalinter\/megalinter-([a-z]*):v5\.(.*)/gm, + replacement: "oxsecurity/megalinter-$1:v6", + test: "megalinter/megalinter-python:v5.1.2", + testRes: "oxsecurity/megalinter-python:v6", + }, + { + regex: /megalinter\/megalinter-([a-z]*):v5/gm, + replacement: "oxsecurity/megalinter-$1:v6", + test: "megalinter/megalinter-python:v5", + testRes: "oxsecurity/megalinter-python:v6", + }, + { + regex: /megalinter\/megalinter-([a-z]*):([a-z]*)/gm, + replacement: "oxsecurity/megalinter-$1:$2", + test: "megalinter/megalinter-python:alpha", + testRes: "oxsecurity/megalinter-python:alpha", + }, + { + regex: /megalinter\/megalinter-([a-z]*)/gm, + replacement: "oxsecurity/megalinter-$1", + test: "megalinter/megalinter-python", + testRes: "oxsecurity/megalinter-python", + }, + // Github actions using main flavor + { + regex: /megalinter\/megalinter@v5\.(.*)/gm, + replacement: "oxsecurity/megalinter@v6", + test: "megalinter/megalinter@v5.2.4", + testRes: "oxsecurity/megalinter@v6", + }, + { + regex: /megalinter\/megalinter@v5/gm, + replacement: "oxsecurity/megalinter@v6", + test: "megalinter/megalinter@v5", + testRes: "oxsecurity/megalinter@v6", + }, + { + regex: /megalinter\/megalinter@([a-z]*)/gm, + replacement: "oxsecurity/megalinter@$1", + test: "megalinter/megalinter@alpha", + testRes: "oxsecurity/megalinter@alpha", + }, + // Docker images using main flavor + { + regex: /megalinter\/megalinter:v5\.(.*)/gm, + replacement: "oxsecurity/megalinter:v6", + test: "megalinter/megalinter:v5.2.4", + testRes: "oxsecurity/megalinter:v6", + }, + { + regex: /megalinter\/megalinter:v5/gm, + replacement: "oxsecurity/megalinter:v6", + test: "megalinter/megalinter:v5", + testRes: "oxsecurity/megalinter:v6", + }, + { + regex: /megalinter\/megalinter:([a-z]*)/gm, + replacement: "oxsecurity/megalinter:$1", + test: "megalinter/megalinter:alpha", + testRes: "oxsecurity/megalinter:alpha", + }, + // All remaining cases... cross fingers :) + { + regex: /megalinter\/megalinter/gm, + replacement: "oxsecurity/megalinter", + test: "wesh megalinter/megalinter", + testRes: "wesh oxsecurity/megalinter", + }, ]; } async run() { + console.log(asciiArt()); + const promptsUpgradeRes = await prompts({ + name: "upgrade", + message: c.blueBright( + `This assistant will automatically upgrade your local files so you use MegaLinter v6\nPlease confirm to proceed :)` + ), + type: "confirm", + initial: true, + }); + if (promptsUpgradeRes.upgrade === false) { + console.log( + "You should upgrade to v6 to benefit from latest versions of linters, and more features :)" + ); + return; + } + // Update local files + await this.applyReplacements(); + this.manageGitIgnore(); + console.log(""); + console.log( + c.green("You MegaLinter local configuration files has been updated !") + ); + console.log( + c.grey( + "Now stage and commit updated files then push to see latest version of MegaLinter in action !" + ) + ); + console.log(""); + // Propose to try ox service + const promptsOxRes = await prompts({ + name: "ox", + message: c.blueBright( + `MegaLinter is now part of ${c.green( + "OX Security" + )}.\nDo you want to connect to OX Security to secure your repository ?` + ), + type: "confirm", + initial: false, + }); + if (promptsOxRes.ox === true) { + new OxSecuritySetup().run(); + } + } + + async applyReplacements() { // List yaml and shell files const globPattern1 = process.cwd() + `/**/*.{yaml,yml,sh,bash}`; const files1 = await glob(globPattern1, { cwd: process.cwd(), dot: true }); @@ -266,6 +425,28 @@ jobs: ) ); } + + // Create or update .gitignore files + manageGitIgnore() { + const gitIgnoreFile = path.join(process.cwd(), ".gitignore"); + let gitIgnoreTextLines = []; + let doWrite = false; + if (fs.existsSync(gitIgnoreFile)) { + gitIgnoreTextLines = fs + .readFileSync(gitIgnoreFile, "utf8") + .split(/\r?\n/); + } + if (!gitIgnoreTextLines.includes("megalinter-reports/")) { + gitIgnoreTextLines.push("megalinter-reports/"); + doWrite = true; + } + if (doWrite) { + fs.writeFileSync(gitIgnoreFile, gitIgnoreTextLines.join("\n") + "\n"); + console.log( + "Updated .gitignore file to exclude megalinter-reports from commits" + ); + } + } } module.exports = { MegaLinterUpgrader }; diff --git a/mega-linter-runner/package.json b/mega-linter-runner/package.json index eb1cf12bd8a..21f8fe47e5d 100644 --- a/mega-linter-runner/package.json +++ b/mega-linter-runner/package.json @@ -82,7 +82,10 @@ "find-package-json": "^1.2.0", "fs-extra": "^10.0.0", "glob-promise": "^4.2.2", + "open": "^8.4.0", "optionator": "^0.9.1", + "prompts": "^2.4.2", + "uuid": "^8.3.2", "which": "^2.0.2", "yeoman-environment": "^3.8.0", "yeoman-generator": "^5.4.2", diff --git a/mega-linter-runner/test/ox-setup.test.js b/mega-linter-runner/test/ox-setup.test.js new file mode 100644 index 00000000000..a20b25e11d9 --- /dev/null +++ b/mega-linter-runner/test/ox-setup.test.js @@ -0,0 +1,25 @@ +const assert = require("assert"); +const fs = require("fs-extra"); +const { OxSecuritySetup } = require("../lib/ox-setup"); +const { OX_REPO_LOCAL_CONFIG_FILE } = require("../lib/config"); + +describe("Ox setup", function () { + it("(Ox setup) register", async () => { + const oxSetup = new OxSecuritySetup(); + const dummyOxToken = Math.random(); + await oxSetup.run(); + await oxSetup.handleResponse({ + clientToken: oxSetup.clientToken, + oxToken: dummyOxToken, + }); + assert( + fs.existsSync(OX_REPO_LOCAL_CONFIG_FILE), + `Local config file does not exists` + ); + assert( + fs.readJSONSync(OX_REPO_LOCAL_CONFIG_FILE).oxToken === dummyOxToken, + "Ox token is not good or missing" + ); + await fs.remove(OX_REPO_LOCAL_CONFIG_FILE); + }); +}); diff --git a/mega-linter-runner/yarn.lock b/mega-linter-runner/yarn.lock new file mode 100644 index 00000000000..5d913ecf556 --- /dev/null +++ b/mega-linter-runner/yarn.lock @@ -0,0 +1,4005 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== + dependencies: + "@babel/highlight" "^7.10.4" + +"@babel/code-frame@^7.0.0": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/helper-validator-identifier@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076" + integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g== + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45" + integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA== + +"@isaacs/string-locale-compare@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" + integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== + +"@nodelib/fs.scandir@2.1.5": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== + dependencies: + "@nodelib/fs.stat" "2.0.5" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.8" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== + dependencies: + "@nodelib/fs.scandir" "2.1.5" + fastq "^1.6.0" + +"@npmcli/arborist@^4.0.4": + version "4.3.1" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-4.3.1.tgz#a08cddce3339882f688c1dea1651f6971e781c44" + integrity sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A== + dependencies: + "@isaacs/string-locale-compare" "^1.1.0" + "@npmcli/installed-package-contents" "^1.0.7" + "@npmcli/map-workspaces" "^2.0.0" + "@npmcli/metavuln-calculator" "^2.0.0" + "@npmcli/move-file" "^1.1.0" + "@npmcli/name-from-folder" "^1.0.1" + "@npmcli/node-gyp" "^1.0.3" + "@npmcli/package-json" "^1.0.1" + "@npmcli/run-script" "^2.0.0" + bin-links "^3.0.0" + cacache "^15.0.3" + common-ancestor-path "^1.0.1" + json-parse-even-better-errors "^2.3.1" + json-stringify-nice "^1.1.4" + mkdirp "^1.0.4" + mkdirp-infer-owner "^2.0.0" + npm-install-checks "^4.0.0" + npm-package-arg "^8.1.5" + npm-pick-manifest "^6.1.0" + npm-registry-fetch "^12.0.1" + pacote "^12.0.2" + parse-conflict-json "^2.0.1" + proc-log "^1.0.0" + promise-all-reject-late "^1.0.0" + promise-call-limit "^1.0.1" + read-package-json-fast "^2.0.2" + readdir-scoped-modules "^1.1.0" + rimraf "^3.0.2" + semver "^7.3.5" + ssri "^8.0.1" + treeverse "^1.0.4" + walk-up-path "^1.0.0" + +"@npmcli/fs@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== + dependencies: + "@gar/promisify" "^1.0.1" + semver "^7.3.5" + +"@npmcli/fs@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.0.tgz#f2a21c28386e299d1a9fae8051d35ad180e33109" + integrity sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ== + dependencies: + "@gar/promisify" "^1.1.3" + semver "^7.3.5" + +"@npmcli/git@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6" + integrity sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw== + dependencies: + "@npmcli/promise-spawn" "^1.3.2" + lru-cache "^6.0.0" + mkdirp "^1.0.4" + npm-pick-manifest "^6.1.1" + promise-inflight "^1.0.1" + promise-retry "^2.0.1" + semver "^7.3.5" + which "^2.0.2" + +"@npmcli/installed-package-contents@^1.0.6", "@npmcli/installed-package-contents@^1.0.7": + version "1.0.7" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" + integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== + dependencies: + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + +"@npmcli/map-workspaces@^2.0.0": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.3.tgz#2d3c75119ee53246e9aa75bc469a55281cd5f08f" + integrity sha512-X6suAun5QyupNM8iHkNPh0AHdRC2rb1W+MTdMvvA/2ixgmqZwlq5cGUBgmKHUHT2LgrkKJMAXbfAoTxOigpK8Q== + dependencies: + "@npmcli/name-from-folder" "^1.0.1" + glob "^8.0.1" + minimatch "^5.0.1" + read-package-json-fast "^2.0.3" + +"@npmcli/metavuln-calculator@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-2.0.0.tgz#70937b8b5a5cad5c588c8a7b38c4a8bd6f62c84c" + integrity sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg== + dependencies: + cacache "^15.0.5" + json-parse-even-better-errors "^2.3.1" + pacote "^12.0.0" + semver "^7.3.2" + +"@npmcli/move-file@^1.0.1", "@npmcli/move-file@^1.1.0": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@npmcli/move-file@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.0.tgz#417f585016081a0184cef3e38902cd917a9bbd02" + integrity sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@npmcli/name-from-folder@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz#77ecd0a4fcb772ba6fe927e2e2e155fbec2e6b1a" + integrity sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA== + +"@npmcli/node-gyp@^1.0.2", "@npmcli/node-gyp@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz#a912e637418ffc5f2db375e93b85837691a43a33" + integrity sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA== + +"@npmcli/package-json@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-1.0.1.tgz#1ed42f00febe5293c3502fd0ef785647355f6e89" + integrity sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg== + dependencies: + json-parse-even-better-errors "^2.3.1" + +"@npmcli/promise-spawn@^1.2.0", "@npmcli/promise-spawn@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz#42d4e56a8e9274fba180dabc0aea6e38f29274f5" + integrity sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg== + dependencies: + infer-owner "^1.0.4" + +"@npmcli/run-script@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-2.0.0.tgz#9949c0cab415b17aaac279646db4f027d6f1e743" + integrity sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig== + dependencies: + "@npmcli/node-gyp" "^1.0.2" + "@npmcli/promise-spawn" "^1.3.2" + node-gyp "^8.2.0" + read-package-json-fast "^2.0.1" + +"@octokit/auth-token@^2.4.4": + version "2.5.0" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" + integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== + dependencies: + "@octokit/types" "^6.0.3" + +"@octokit/core@^3.5.1": + version "3.6.0" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" + integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== + dependencies: + "@octokit/auth-token" "^2.4.4" + "@octokit/graphql" "^4.5.8" + "@octokit/request" "^5.6.3" + "@octokit/request-error" "^2.0.5" + "@octokit/types" "^6.0.3" + before-after-hook "^2.2.0" + universal-user-agent "^6.0.0" + +"@octokit/endpoint@^6.0.1": + version "6.0.12" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" + integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== + dependencies: + "@octokit/types" "^6.0.3" + is-plain-object "^5.0.0" + universal-user-agent "^6.0.0" + +"@octokit/graphql@^4.5.8": + version "4.8.0" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" + integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== + dependencies: + "@octokit/request" "^5.6.0" + "@octokit/types" "^6.0.3" + universal-user-agent "^6.0.0" + +"@octokit/openapi-types@^12.7.0": + version "12.8.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.8.0.tgz#f4708cf948724d6e8f7d878cfd91584c1c5c0523" + integrity sha512-ydcKLs2KKcxlhpdWLzJxEBDEk/U5MUeqtqkXlrtAUXXFPs6vLl1PEGghFC/BbpleosB7iXs0Z4P2DGe7ZT5ZNg== + +"@octokit/plugin-paginate-rest@^2.16.8": + version "2.21.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.2.tgz#070be9bb18cb78e52b471ddc3551d28355e2d5e2" + integrity sha512-S24H0a6bBVreJtoTaRHT/gnVASbOHVTRMOVIqd9zrJBP3JozsxJB56TDuTUmd1xLI4/rAE2HNmThvVKtIdLLEw== + dependencies: + "@octokit/types" "^6.39.0" + +"@octokit/plugin-request-log@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== + +"@octokit/plugin-rest-endpoint-methods@^5.12.0": + version "5.16.2" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342" + integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw== + dependencies: + "@octokit/types" "^6.39.0" + deprecation "^2.3.1" + +"@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" + integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== + dependencies: + "@octokit/types" "^6.0.3" + deprecation "^2.0.0" + once "^1.4.0" + +"@octokit/request@^5.6.0", "@octokit/request@^5.6.3": + version "5.6.3" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" + integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== + dependencies: + "@octokit/endpoint" "^6.0.1" + "@octokit/request-error" "^2.1.0" + "@octokit/types" "^6.16.1" + is-plain-object "^5.0.0" + node-fetch "^2.6.7" + universal-user-agent "^6.0.0" + +"@octokit/rest@^18.0.6": + version "18.12.0" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" + integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== + dependencies: + "@octokit/core" "^3.5.1" + "@octokit/plugin-paginate-rest" "^2.16.8" + "@octokit/plugin-request-log" "^1.0.4" + "@octokit/plugin-rest-endpoint-methods" "^5.12.0" + +"@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0": + version "6.39.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.39.0.tgz#46ce28ca59a3d4bac0e487015949008302e78eee" + integrity sha512-Mq4N9sOAYCitTsBtDdRVrBE80lIrMBhL9Jbrw0d+j96BAzlq4V+GLHFJbHokEsVvO/9tQupQdoFdgVYhD2C8UQ== + dependencies: + "@octokit/openapi-types" "^12.7.0" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@tootallnate/once@2": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== + +"@types/expect@^1.20.4": + version "1.20.4" + resolved "https://registry.yarnpkg.com/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" + integrity sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg== + +"@types/glob@^7.1.3": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/minimatch@*", "@types/minimatch@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== + +"@types/node@*": + version "18.0.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.3.tgz#463fc47f13ec0688a33aec75d078a0541a447199" + integrity sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ== + +"@types/node@^15.6.1": + version "15.14.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa" + integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/vinyl@^2.0.4": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.6.tgz#b2d134603557a7c3d2b5d3dc23863ea2b5eb29b0" + integrity sha512-ayJ0iOCDNHnKpKTgBG6Q6JOnHTj9zFta+3j2b8Ejza0e4cvRyMn0ZoLEmbPrTHe5YYRlDYPvPWVdV4cTaRyH7g== + dependencies: + "@types/expect" "^1.20.4" + "@types/node" "*" + +"@ungap/promise-all-settled@1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" + integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== + +acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== + +agent-base@6, agent-base@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agentkeepalive@^4.1.3, agentkeepalive@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" + integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== + dependencies: + debug "^4.1.0" + depd "^1.1.2" + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ajv@^8.0.1: + version "8.11.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f" + integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-colors@^4.1.1: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +ansi-escapes@^4.2.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== + dependencies: + type-fest "^0.21.3" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== + +ansi-regex@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" + integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== + +ansi-styles@^3.0.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +are-we-there-yet@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz#ba20bd6b553e31d62fc8c31bd23d22b95734390d" + integrity sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +assert@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" + integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== + dependencies: + es6-object-assign "^1.1.0" + is-nan "^1.2.1" + object-is "^1.0.1" + util "^0.12.0" + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +before-after-hook@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.2.tgz#a6e8ca41028d90ee2c24222f201c90956091613e" + integrity sha512-3pZEU3NT5BFUo/AD5ERPWOgQOCZITni6iavr5AUw5AUwQjMlI0kzu5btnyD39AF0gUEsDPwJT+oY1ORBJijPjQ== + +bin-links@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.1.tgz#cc70ffb481988b22c527d3e6e454787876987a49" + integrity sha512-9vx+ypzVhASvHTS6K+YSGf7nwQdANoz7v6MTC0aCtYnOEZ87YvMf81aY737EZnGZdpbRM3sfWjO9oWkKmuIvyQ== + dependencies: + cmd-shim "^5.0.0" + mkdirp-infer-owner "^2.0.0" + npm-normalize-package-bin "^1.0.0" + read-cmd-shim "^3.0.0" + rimraf "^3.0.0" + write-file-atomic "^4.0.0" + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +binaryextensions@^4.15.0, binaryextensions@^4.16.0: + version "4.18.0" + resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-4.18.0.tgz#22aeada2d14de062c60e8ca59a504a5636a76ceb" + integrity sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw== + +bl@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@^3.0.2, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== + +cacache@^15.0.3, cacache@^15.0.5, cacache@^15.2.0: + version "15.3.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== + dependencies: + "@npmcli/fs" "^1.0.0" + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.1" + tar "^6.0.2" + unique-filename "^1.1.1" + +cacache@^16.1.0: + version "16.1.1" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.1.tgz#4e79fb91d3efffe0630d5ad32db55cc1b870669c" + integrity sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg== + dependencies: + "@npmcli/fs" "^2.1.0" + "@npmcli/move-file" "^2.0.0" + chownr "^2.0.0" + fs-minipass "^2.1.0" + glob "^8.0.1" + infer-owner "^1.0.4" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + mkdirp "^1.0.4" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^9.0.0" + tar "^6.1.11" + unique-filename "^1.1.1" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase@^6.0.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +chalk@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A== + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +chokidar@3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + integrity sha512-3Fo5wu8Ytle8q9iCzS4D2MWVL2X7JVWRiS1BnXbTFDhS9c/REkM9vd1AmabsoZoY5/dGi5TT9iKL8Kb6DeBRQg== + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^2.5.0: + version "2.6.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.6.1.tgz#adc954ebe281c37a6319bfa401e6dd2488ffb70d" + integrity sha512-x/5fWmGMnbKQAaNwN+UZlV79qBLM9JFnJuJ03gIi5whrob0xV0ofNVHy9DhwGdsMJQc2OKv0oGmLzvaqvAVv+g== + +cli-table@^0.3.1: + version "0.3.11" + resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.11.tgz#ac69cdecbe81dccdba4889b9a18b7da312a9d3ee" + integrity sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ== + dependencies: + colors "1.0.3" + +cli-width@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +clone-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g== + +clone-stats@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag== + +clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== + +clone@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== + +cloneable-readable@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" + integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== + dependencies: + inherits "^2.0.1" + process-nextick-args "^2.0.0" + readable-stream "^2.3.5" + +cmd-shim@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" + integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw== + dependencies: + mkdirp-infer-owner "^2.0.0" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-support@^1.1.2, color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +colors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== + +commander@7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" + integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg== + +common-ancestor-path@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" + integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +console-control-strings@^1.0.0, console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +dargs@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== + +dateformat@^4.5.0: + version "4.6.3" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== + +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +debug@4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== + dependencies: + ms "2.1.2" + +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + +defaults@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + integrity sha512-s82itHOnYrN0Ib8r+z7laQz3sdE+4FP3d9Q7VLO7U+KRT+CR0GsWuyHxzdAY82I7cXv0G/twrqomTJLOssO5HA== + dependencies: + clone "^1.0.2" + +define-lazy-prop@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +depd@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +deprecation@^2.0.0, deprecation@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== + +dezalgo@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" + integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== + dependencies: + asap "^2.0.0" + wrappy "1" + +diff@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +diff@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +ejs@^3.1.6: + version "3.1.8" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.8.tgz#758d32910c78047585c7ef1f92f9ee041c1c190b" + integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ== + dependencies: + jake "^10.8.5" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encoding@^0.1.12, encoding@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +enquirer@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" + integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== + dependencies: + ansi-colors "^4.1.1" + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error@^10.4.0: + version "10.4.0" + resolved "https://registry.yarnpkg.com/error/-/error-10.4.0.tgz#6fcf0fd64bceb1e750f8ed9a3dd880f00e46a487" + integrity sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw== + +es-abstract@^1.19.0, es-abstract@^1.19.5, es-abstract@^1.20.0: + version "1.20.1" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.1.tgz#027292cd6ef44bd12b1913b828116f54787d1814" + integrity sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.1" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.4" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.0" + object-keys "^1.1.1" + object.assign "^4.1.2" + regexp.prototype.flags "^1.4.3" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-object-assign@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" + integrity sha512-MEl9uirslVwqQU369iHNWZXsI8yaZYGg/D65aOgZkeyFJwHYSxilf7rQzXKI7DdDuBPrBXbfk3sl9hJhmd5AUw== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== + dependencies: + esrecurse "^4.3.0" + estraverse "^4.1.1" + +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== + +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + +eslint@^7.14.0: + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== + dependencies: + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" + ajv "^6.10.0" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.0.1" + doctrine "^3.0.0" + enquirer "^2.3.5" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.1.2" + globals "^13.6.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.4.1" + lodash.merge "^4.6.2" + minimatch "^3.0.4" + natural-compare "^1.4.0" + optionator "^0.9.1" + progress "^2.0.0" + regexpp "^3.1.0" + semver "^7.2.1" + strip-ansi "^6.0.0" + strip-json-comments "^3.1.0" + table "^6.0.9" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== + dependencies: + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== + dependencies: + estraverse "^5.2.0" + +estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +execa@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== + dependencies: + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" + strip-final-newline "^2.0.0" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-glob@^3.2.9: + version "3.2.11" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" + integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + +fastq@^1.6.0: + version "1.13.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" + integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== + dependencies: + reusify "^1.0.4" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== + dependencies: + flat-cache "^3.0.4" + +filelist@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== + dependencies: + minimatch "^5.0.1" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-package-json@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/find-package-json/-/find-package-json-1.2.0.tgz#4057d1b943f82d8445fe52dc9cf456f6b8b58083" + integrity sha512-+SOGcLGYDJHtyqHd87ysBhmaeQ95oWspDKnMXBrnQ9Eq4OkLNqejgoaD8xVWu6GPa0B6roa6KinCMEMcVeqONw== + +find-up@5.0.0, find-up@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +find-up@^4.0.0, find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +find-yarn-workspace-root2@1.2.16: + version "1.2.16" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz#60287009dd2f324f59646bdb4b7610a6b301c2a9" + integrity sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA== + dependencies: + micromatch "^4.0.2" + pkg-dir "^4.2.0" + +first-chunk-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" + integrity sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg== + dependencies: + readable-stream "^2.0.2" + +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + dependencies: + flatted "^3.1.0" + rimraf "^3.0.2" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +flatted@^3.1.0: + version "3.2.6" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.6.tgz#022e9218c637f9f3fc9c35ab9c9193f05add60b2" + integrity sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +fs-extra@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" + integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^6.0.1" + universalify "^2.0.0" + +fs-minipass@^2.0.0, fs-minipass@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + +gauge@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" + integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^3.0.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.2.tgz#336975123e05ad0b7ba41f152ee4aadbea6cf598" + integrity sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw== + +get-stream@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== + dependencies: + pump "^3.0.0" + +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +github-username@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/github-username/-/github-username-6.0.0.tgz#d543eced7295102996cd8e4e19050ebdcbe60658" + integrity sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ== + dependencies: + "@octokit/rest" "^18.0.6" + +glob-parent@^5.1.2, glob-parent@~5.1.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob-promise@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/glob-promise/-/glob-promise-4.2.2.tgz#15f44bcba0e14219cd93af36da6bb905ff007877" + integrity sha512-xcUzJ8NWN5bktoTIX7eOclO1Npxd/dyVqUJxlLIDasT4C7KZyqlPIwkdJ0Ypiy3p2ZKahTjK4M9uC3sNSfNMzw== + dependencies: + "@types/glob" "^7.1.3" + +glob@7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^8.0.1: + version "8.0.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-8.0.3.tgz#415c6eb2deed9e502c68fa44a272e6da6eeca42e" + integrity sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^5.0.1" + once "^1.3.0" + +globals@^13.6.0, globals@^13.9.0: + version "13.16.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.16.0.tgz#9be4aca28f311aaeb974ea54978ebbb5e35ce46a" + integrity sha512-A1lrQfpNF+McdPOnnFqY3kSN0AFTy485bTi1bkLk4mVPODIUEcSfhHgRqA+QdXPksrSTTztYXx37NFV+GpGk3Q== + dependencies: + type-fest "^0.20.2" + +globby@^11.0.1, globby@^11.0.3: + version "11.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.2.9" + ignore "^5.2.0" + merge2 "^1.4.1" + slash "^3.0.0" + +graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.6: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +grouped-queue@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-2.0.0.tgz#a2c6713f2171e45db2c300a3a9d7c119d694dac8" + integrity sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw== + +growl@1.10.5: + version "1.10.5" + resolved "https://registry.yarnpkg.com/growl/-/growl-1.10.5.tgz#f2735dc2283674fa67478b10181059355c369e5e" + integrity sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg== + dependencies: + ansi-regex "^2.0.0" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +http-cache-semantics@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== + dependencies: + "@tootallnate/once" "2" + agent-base "6" + debug "4" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + +iconv-lite@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +ignore-walk@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-4.0.1.tgz#fc840e8346cf88a3a9380c5b17933cd8f4d39fa3" + integrity sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw== + dependencies: + minimatch "^3.0.4" + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" + integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== + +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inquirer@^8.0.0: + version "8.2.4" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.4.tgz#ddbfe86ca2f67649a67daa6f1051c128f684f0b4" + integrity sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^4.1.1" + cli-cursor "^3.1.0" + cli-width "^3.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.21" + mute-stream "0.0.8" + ora "^5.4.1" + run-async "^2.4.0" + rxjs "^7.5.5" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + wrap-ansi "^7.0.0" + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +ip@^1.1.5: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" + integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== + +is-arguments@^1.0.4: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== + +is-core-module@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" + integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-docker@^2.0.0, is-docker@^2.1.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-generator-function@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-interactive@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-nan@^1.2.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" + integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.0.0, is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-plain-object@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-scoped@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-2.1.0.tgz#fef0713772658bdf5bee418608267ddae6d3566d" + integrity sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ== + dependencies: + scoped-regex "^2.0.0" + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.3, is-typed-array@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.9.tgz#246d77d2871e7d9f5aeb1d54b9f52c71329ece67" + integrity sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +is-utf8@^0.2.0, is-utf8@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-wsl@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== + dependencies: + is-docker "^2.0.0" + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isbinaryfile@^4.0.8: + version "4.0.10" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +jake@^10.8.5: + version "10.8.5" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" + integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== + dependencies: + async "^3.2.3" + chalk "^4.0.2" + filelist "^1.0.1" + minimatch "^3.0.4" + +js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.0.0.tgz#f426bc0ff4b4051926cd588c71113183409a121f" + integrity sha512-pqon0s+4ScYUvX30wxQi3PogGFAlUyH0awepWvwkj4jD4v+ova3RiYw8bmA6x2rDrEaj8i/oWKoRxpVNW+Re8Q== + dependencies: + argparse "^2.0.1" + +js-yaml@^3.13.0, js-yaml@^3.13.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + +json-stringify-nice@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" + integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== + +jsonfile@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== + dependencies: + universalify "^2.0.0" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonparse@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +just-diff-apply@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.3.1.tgz#30f40809ffed55ad76dccf73fa9b85a76964c867" + integrity sha512-dgFenZnMsc1xGNqgdtgnh7DK+Oy352CE3VZLbzcbQpsBs9iI2K3M0IRrdgREZ72eItTjbl0suRyvKRdVQa9GbA== + +just-diff@^5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.0.3.tgz#4c9c514dec5526b25ab977590e3c39a0cf271554" + integrity sha512-a8p80xcpJ6sdurk5PxDKb4mav9MeKjA3zFKZpCWBIfvg8mznfnmb13MKZvlrwJ+Lhis0wM3uGAzE0ArhFHvIcg== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +load-yaml-file@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/load-yaml-file/-/load-yaml-file-0.2.0.tgz#af854edaf2bea89346c07549122753c07372f64d" + integrity sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw== + dependencies: + graceful-fs "^4.1.5" + js-yaml "^3.13.0" + pify "^4.0.1" + strip-bom "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw== + +lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.0.0.tgz#69b3cc46d20f448eccdb75ea1fa733d9e821c920" + integrity sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA== + dependencies: + chalk "^4.0.0" + +log-symbols@^4.0.0, log-symbols@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +lru-cache@^7.7.1: + version "7.12.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.12.0.tgz#be2649a992c8a9116efda5c487538dcf715f3476" + integrity sha512-OIP3DwzRZDfLg9B9VP/huWBlpvbkmbfiBy8xmsXp4RPmE4A3MhwNozc5ZJ3fWnSg8fDcdlE/neRTPG2ycEKliw== + +make-fetch-happen@^10.0.1: + version "10.1.8" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.1.8.tgz#3b6e93dd8d8fdb76c0d7bf32e617f37c3108435a" + integrity sha512-0ASJbG12Au6+N5I84W+8FhGS6iM8MyzvZady+zaQAu+6IOaESFzCLLD0AR1sAFF3Jufi8bxm586ABN6hWd3k7g== + dependencies: + agentkeepalive "^4.2.1" + cacache "^16.1.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^7.7.1" + minipass "^3.1.6" + minipass-collect "^1.0.2" + minipass-fetch "^2.0.3" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.3" + promise-retry "^2.0.1" + socks-proxy-agent "^7.0.0" + ssri "^9.0.0" + +make-fetch-happen@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" + integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== + dependencies: + agentkeepalive "^4.1.3" + cacache "^15.2.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^6.0.0" + minipass "^3.1.3" + minipass-collect "^1.0.2" + minipass-fetch "^1.3.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.2" + promise-retry "^2.0.1" + socks-proxy-agent "^6.0.0" + ssri "^8.0.0" + +"mem-fs-editor@^8.1.2 || ^9.0.0": + version "9.4.0" + resolved "https://registry.yarnpkg.com/mem-fs-editor/-/mem-fs-editor-9.4.0.tgz#0cc1cf61350e33c25fc364c97fb0551eb32b8c9b" + integrity sha512-HSSOLSVRrsDdui9I6i96dDtG+oAez/4EB2g4cjSrNhgNQ3M+L57/+22NuPdORSoxvOHjIg/xeOE+C0wwF91D2g== + dependencies: + binaryextensions "^4.16.0" + commondir "^1.0.1" + deep-extend "^0.6.0" + ejs "^3.1.6" + globby "^11.0.3" + isbinaryfile "^4.0.8" + minimatch "^3.0.4" + multimatch "^5.0.0" + normalize-path "^3.0.0" + textextensions "^5.13.0" + +"mem-fs@^1.2.0 || ^2.0.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/mem-fs/-/mem-fs-2.2.1.tgz#c87bc8a53fb17971b129d4bcd59a9149fb78c5b1" + integrity sha512-yiAivd4xFOH/WXlUi6v/nKopBh1QLzwjFi36NK88cGt/PRXI8WeBASqY+YSjIVWvQTx3hR8zHKDBMV6hWmglNA== + dependencies: + "@types/node" "^15.6.1" + "@types/vinyl" "^2.0.4" + vinyl "^2.0.1" + vinyl-file "^3.0.0" + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.3.0, merge2@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== + +micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.5" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== + dependencies: + braces "^3.0.2" + picomatch "^2.3.1" + +mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +minimatch@3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" + integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + dependencies: + brace-expansion "^2.0.1" + +minimist@^1.1.0, minimist@^1.2.5: + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-fetch@^1.3.2, minipass-fetch@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" + integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== + dependencies: + minipass "^3.1.0" + minipass-sized "^1.0.3" + minizlib "^2.0.0" + optionalDependencies: + encoding "^0.1.12" + +minipass-fetch@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.0.tgz#ca1754a5f857a3be99a9271277246ac0b44c3ff8" + integrity sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg== + dependencies: + minipass "^3.1.6" + minipass-sized "^1.0.3" + minizlib "^2.1.2" + optionalDependencies: + encoding "^0.1.13" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-json-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== + dependencies: + jsonparse "^1.3.1" + minipass "^3.0.0" + +minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3.1.6: + version "3.3.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" + integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== + dependencies: + yallist "^4.0.0" + +minizlib@^2.0.0, minizlib@^2.1.1, minizlib@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp-infer-owner@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" + integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw== + dependencies: + chownr "^2.0.0" + infer-owner "^1.0.4" + mkdirp "^1.0.3" + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mocha@^8.2.1: + version "8.4.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-8.4.0.tgz#677be88bf15980a3cae03a73e10a0fc3997f0cff" + integrity sha512-hJaO0mwDXmZS4ghXsvPVriOhsxQ7ofcpQdm8dE+jISUOKopitvnXFQmpRR7jd2K6VBG6E26gU3IAbXXGIbu4sQ== + dependencies: + "@ungap/promise-all-settled" "1.1.2" + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.1" + debug "4.3.1" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.1.6" + growl "1.10.5" + he "1.2.0" + js-yaml "4.0.0" + log-symbols "4.0.0" + minimatch "3.0.4" + ms "2.1.3" + nanoid "3.1.20" + serialize-javascript "5.0.1" + strip-json-comments "3.1.1" + supports-color "8.1.1" + which "2.0.2" + wide-align "1.1.3" + workerpool "6.1.0" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +multimatch@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" + integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== + dependencies: + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" + +mute-stream@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +nanoid@3.1.20: + version "3.1.20" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.20.tgz#badc263c6b1dcf14b71efaa85f6ab4c1d6cfc788" + integrity sha512-a1cQNyczgKbLX9jwbS/+d7W8fX/RfgYR7lVWwWOGIPNgK2m0MWvrGF6/m4kk6U3QcFMnZf3RIhL0v2Jgh/0Uxw== + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + +negotiator@^0.6.2, negotiator@^0.6.3: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +node-fetch@^2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-gyp@^8.2.0: + version "8.4.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" + integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.6" + make-fetch-happen "^9.1.0" + nopt "^5.0.0" + npmlog "^6.0.0" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.2" + which "^2.0.2" + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +npm-bundled@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-install-checks@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" + integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^1.0.0, npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-package-arg@^8.0.1, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: + version "8.1.5" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" + integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== + dependencies: + hosted-git-info "^4.0.1" + semver "^7.3.4" + validate-npm-package-name "^3.0.0" + +npm-packlist@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-3.0.0.tgz#0370df5cfc2fcc8f79b8f42b37798dd9ee32c2a9" + integrity sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ== + dependencies: + glob "^7.1.6" + ignore-walk "^4.0.1" + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + +npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz#7b5484ca2c908565f43b7f27644f36bb816f5148" + integrity sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA== + dependencies: + npm-install-checks "^4.0.0" + npm-normalize-package-bin "^1.0.1" + npm-package-arg "^8.1.2" + semver "^7.3.4" + +npm-registry-fetch@^12.0.0, npm-registry-fetch@^12.0.1: + version "12.0.2" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz#ae583bb3c902a60dae43675b5e33b5b1f6159f1e" + integrity sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA== + dependencies: + make-fetch-happen "^10.0.1" + minipass "^3.1.6" + minipass-fetch "^1.4.1" + minipass-json-stream "^1.0.1" + minizlib "^2.1.2" + npm-package-arg "^8.1.5" + +npm-run-path@^4.0.0, npm-run-path@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + +npmlog@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" + integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== + dependencies: + are-we-there-yet "^3.0.0" + console-control-strings "^1.1.0" + gauge "^4.0.3" + set-blocking "^2.0.0" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.12.0, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-is@^1.0.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== + dependencies: + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +onetime@^5.1.0, onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== + dependencies: + mimic-fn "^2.1.0" + +open@^8.4.0: + version "8.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-8.4.0.tgz#345321ae18f8138f82565a910fdc6b39e8c244f8" + integrity sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q== + dependencies: + define-lazy-prop "^2.0.0" + is-docker "^2.1.1" + is-wsl "^2.2.0" + +optionator@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" + integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.3" + +ora@^5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== + dependencies: + bl "^4.1.0" + chalk "^4.1.0" + cli-cursor "^3.1.0" + cli-spinners "^2.5.0" + is-interactive "^1.0.0" + is-unicode-supported "^0.1.0" + log-symbols "^4.1.0" + strip-ansi "^6.0.0" + wcwidth "^1.0.1" + +os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-queue@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== + dependencies: + eventemitter3 "^4.0.4" + p-timeout "^3.2.0" + +p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-transform@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-transform/-/p-transform-1.3.0.tgz#2da960ba92c6a56efbe75cbd1edf3ea7b3191049" + integrity sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg== + dependencies: + debug "^4.3.2" + p-queue "^6.6.2" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +pacote@^12.0.0, pacote@^12.0.2: + version "12.0.3" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-12.0.3.tgz#b6f25868deb810e7e0ddf001be88da2bcaca57c7" + integrity sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow== + dependencies: + "@npmcli/git" "^2.1.0" + "@npmcli/installed-package-contents" "^1.0.6" + "@npmcli/promise-spawn" "^1.2.0" + "@npmcli/run-script" "^2.0.0" + cacache "^15.0.5" + chownr "^2.0.0" + fs-minipass "^2.1.0" + infer-owner "^1.0.4" + minipass "^3.1.3" + mkdirp "^1.0.3" + npm-package-arg "^8.0.1" + npm-packlist "^3.0.0" + npm-pick-manifest "^6.0.0" + npm-registry-fetch "^12.0.0" + promise-retry "^2.0.1" + read-package-json-fast "^2.0.1" + rimraf "^3.0.2" + ssri "^8.0.1" + tar "^6.1.0" + +pad-component@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pad-component/-/pad-component-0.0.1.tgz#ad1f22ce1bf0fdc0d6ddd908af17f351a404b8ac" + integrity sha512-8EKVBxCRSvLnsX1p2LlSFSH3c2/wuhY9/BXXWu8boL78FbVKqn2L5SpURt1x5iw6Gq8PTqJ7MdPoe5nCtX3I+g== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-conflict-json@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323" + integrity sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA== + dependencies: + json-parse-even-better-errors "^2.3.1" + just-diff "^5.0.1" + just-diff-apply "^5.2.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +preferred-pm@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/preferred-pm/-/preferred-pm-3.0.3.tgz#1b6338000371e3edbce52ef2e4f65eb2e73586d6" + integrity sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ== + dependencies: + find-up "^5.0.0" + find-yarn-workspace-root2 "1.2.16" + path-exists "^4.0.0" + which-pm "2.0.0" + +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + +pretty-bytes@^5.3.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== + +proc-log@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-1.0.0.tgz#0d927307401f69ed79341e83a0b2c9a13395eb77" + integrity sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg== + +process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +progress@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-all-reject-late@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" + integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== + +promise-call-limit@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-1.0.1.tgz#4bdee03aeb85674385ca934da7114e9bcd3c6e24" + integrity sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +prompts@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" + integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.5" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +queue-microtask@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +read-cmd-shim@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.0.tgz#62b8c638225c61e6cc607f8f4b779f3b8238f155" + integrity sha512-KQDVjGqhZk92PPNRj9ZEXEuqg8bUobSKRw+q0YQ3TKI5xkce7bUJobL4Z/OtiEbAAv70yEpYIXp4iQ9L8oPVog== + +read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" + integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== + dependencies: + json-parse-even-better-errors "^2.3.0" + npm-normalize-package-bin "^1.0.1" + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@^2.0.2, readable-stream@^2.3.5: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdir-scoped-modules@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== + dependencies: + picomatch "^2.2.1" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + +regexpp@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== + +replace-ext@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" + integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve@^1.1.6, resolve@^1.10.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rimraf@^3.0.0, rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +run-async@^2.0.0, run-async@^2.4.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== + +run-parallel@^1.1.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== + dependencies: + queue-microtask "^1.2.2" + +rxjs@^7.5.5: + version "7.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.5.tgz#2ebad89af0f560f460ad5cc4213219e1f7dd4e9f" + integrity sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw== + dependencies: + tslib "^2.1.0" + +safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +scoped-regex@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-2.1.0.tgz#7b9be845d81fd9d21d1ec97c61a0b7cf86d2015f" + integrity sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ== + +"semver@2 || 3 || 4 || 5": + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: + version "7.3.7" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" + integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== + dependencies: + lru-cache "^6.0.0" + +serialize-javascript@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shelljs@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +sisteransi@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socks-proxy-agent@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" + integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + +socks-proxy-agent@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + +socks@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.6.2.tgz#ec042d7960073d40d94268ff3bb727dc685f111a" + integrity sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA== + dependencies: + ip "^1.1.5" + smart-buffer "^4.2.0" + +sort-keys@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-4.2.0.tgz#6b7638cee42c506fff8c1cecde7376d21315be18" + integrity sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg== + dependencies: + is-plain-obj "^2.0.0" + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.11" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" + integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== + +ssri@^8.0.0, ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + +ssri@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" + integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== + dependencies: + minipass "^3.1.1" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string.prototype.trimend@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz#914a65baaab25fbdd4ee291ca7dde57e869cb8d0" + integrity sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string.prototype.trimstart@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz#5466d93ba58cfa2134839f81d7f42437e8c01fef" + integrity sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.19.5" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow== + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom-buf@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572" + integrity sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ== + dependencies: + is-utf8 "^0.2.1" + +strip-bom-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca" + integrity sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w== + dependencies: + first-chunk-stream "^2.0.0" + strip-bom "^2.0.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g== + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +table@^6.0.9: + version "6.8.0" + resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca" + integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA== + dependencies: + ajv "^8.0.1" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + +taketalk@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/taketalk/-/taketalk-1.0.0.tgz#b4d4f0deed206ae7df775b129ea2ca6de52f26dd" + integrity sha512-kS7E53It6HA8S1FVFBWP7HDwgTiJtkmYk7TsowGlizzVrivR1Mf9mgjXHY1k7rOfozRVMZSfwjB3bevO4QEqpg== + dependencies: + get-stdin "^4.0.1" + minimist "^1.1.0" + +tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== + +textextensions@^5.12.0, textextensions@^5.13.0: + version "5.15.0" + resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-5.15.0.tgz#4bb3296ad6fc111cf4b39c589dd028d8aaaf7060" + integrity sha512-MeqZRHLuaGamUXGuVn2ivtU3LA3mLCCIO5kUGoohTCoGmCBg/+8yPhWVX9WSl9telvVd8erftjFk9Fwb2dD6rw== + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +treeverse@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-1.0.4.tgz#a6b0ebf98a1bca6846ddc7ecbc900df08cb9cd5f" + integrity sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g== + +tslib@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== + +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +universal-user-agent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +util@^0.12.0: + version "0.12.4" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" + integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== + dependencies: + inherits "^2.0.3" + is-arguments "^1.0.4" + is-generator-function "^1.0.7" + is-typed-array "^1.1.3" + safe-buffer "^5.1.2" + which-typed-array "^1.1.2" + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache@^2.0.3: + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== + dependencies: + builtins "^1.0.3" + +vinyl-file@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-3.0.0.tgz#b104d9e4409ffa325faadd520642d0a3b488b365" + integrity sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg== + dependencies: + graceful-fs "^4.1.2" + pify "^2.3.0" + strip-bom-buf "^1.0.0" + strip-bom-stream "^2.0.0" + vinyl "^2.0.1" + +vinyl@^2.0.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" + integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== + dependencies: + clone "^2.1.1" + clone-buffer "^1.0.0" + clone-stats "^1.0.0" + cloneable-readable "^1.0.0" + remove-trailing-separator "^1.0.1" + replace-ext "^1.0.0" + +walk-up-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e" + integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg== + +wcwidth@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== + dependencies: + defaults "^1.0.3" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-pm@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-pm/-/which-pm-2.0.0.tgz#8245609ecfe64bf751d0eef2f376d83bf1ddb7ae" + integrity sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w== + dependencies: + load-yaml-file "^0.2.0" + path-exists "^4.0.0" + +which-typed-array@^1.1.2: + version "1.1.8" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.8.tgz#0cfd53401a6f334d90ed1125754a42ed663eb01f" + integrity sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + es-abstract "^1.20.0" + for-each "^0.3.3" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.9" + +which@2.0.2, which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +wide-align@^1.1.2, wide-align@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +word-wrap@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +workerpool@6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.1.0.tgz#a8e038b4c94569596852de7a8ea4228eefdeb37b" + integrity sha512-toV7q9rWNYha963Pl/qyeZ6wG+3nnsyvolaNUS8+R5Wtw6qJPTxIlOP1ZSvcGhEJw+l3HMMmtiNo9Gl61G4GVg== + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +write-file-atomic@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f" + integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ== + dependencies: + imurmurhash "^0.1.4" + signal-exit "^3.0.7" + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yeoman-environment@^3.8.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-3.9.1.tgz#21912bdee4b1d302a5c25a7d31338fa092ea7116" + integrity sha512-IdRnbQt/DSOSnao0oD9c+or1X2UrL+fx9eC0O7Lq/MGZV68nhv9k77MqG+hEAySPSlyCpocVlhfQwV62hczk5Q== + dependencies: + "@npmcli/arborist" "^4.0.4" + are-we-there-yet "^2.0.0" + arrify "^2.0.1" + binaryextensions "^4.15.0" + chalk "^4.1.0" + cli-table "^0.3.1" + commander "7.1.0" + dateformat "^4.5.0" + debug "^4.1.1" + diff "^5.0.0" + error "^10.4.0" + escape-string-regexp "^4.0.0" + execa "^5.0.0" + find-up "^5.0.0" + globby "^11.0.1" + grouped-queue "^2.0.0" + inquirer "^8.0.0" + is-scoped "^2.1.0" + lodash "^4.17.10" + log-symbols "^4.0.0" + mem-fs "^1.2.0 || ^2.0.0" + mem-fs-editor "^8.1.2 || ^9.0.0" + minimatch "^3.0.4" + npmlog "^5.0.1" + p-queue "^6.6.2" + p-transform "^1.3.0" + pacote "^12.0.2" + preferred-pm "^3.0.3" + pretty-bytes "^5.3.0" + semver "^7.1.3" + slash "^3.0.0" + strip-ansi "^6.0.0" + text-table "^0.2.0" + textextensions "^5.12.0" + untildify "^4.0.0" + +yeoman-generator@^5.4.2: + version "5.6.1" + resolved "https://registry.yarnpkg.com/yeoman-generator/-/yeoman-generator-5.6.1.tgz#850fd266a5ab26d9d1cb9c46ad646f06eade4a1d" + integrity sha512-XllgFvmDEwoPMq2rKtL4/N52WlINJW6a3I3XtlCrMb3/dqO5dW0nPNgR0L3IIUIdf9y1EHb1ZFMs2Qp3ZEEFxg== + dependencies: + chalk "^4.1.0" + dargs "^7.0.0" + debug "^4.1.1" + execa "^4.1.0" + github-username "^6.0.0" + lodash "^4.17.11" + minimist "^1.2.5" + read-pkg-up "^7.0.1" + run-async "^2.0.0" + semver "^7.2.1" + shelljs "^0.8.5" + sort-keys "^4.2.0" + text-table "^0.2.0" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +yosay@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/yosay/-/yosay-2.0.2.tgz#a7017e764cd88d64a1ae64812201de5b157adf6d" + integrity sha512-avX6nz2esp7IMXGag4gu6OyQBsMh/SEn+ZybGu3yKPlOTE6z9qJrzG/0X5vCq/e0rPFy0CUYCze0G5hL310ibA== + dependencies: + ansi-regex "^2.0.0" + ansi-styles "^3.0.0" + chalk "^1.0.0" + cli-boxes "^1.0.0" + pad-component "0.0.1" + string-width "^2.0.0" + strip-ansi "^3.0.0" + taketalk "^1.0.0" + wrap-ansi "^2.0.0" diff --git a/megalinter/Linter.py b/megalinter/Linter.py index f0c427139f0..381129a63f6 100644 --- a/megalinter/Linter.py +++ b/megalinter/Linter.py @@ -32,11 +32,11 @@ from time import perf_counter from megalinter import config, pre_post_factory, utils +from megalinter.constants import DEFAULT_DOCKER_WORKSPACE_DIR class Linter: TEMPLATES_DIR = "/action/lib/.automation/" - DEFAULT_WORKSPACE_DIR = "/tmp/lint/" # Constructor: Initialize Linter instance with name and config variables def __init__(self, params=None, linter_config=None): @@ -54,6 +54,8 @@ def __init__(self, params=None, linter_config=None): self.disabled = False self.is_formatter = False self.linter_name = "Field 'linter_name' must be overridden at custom linter class level" # Ex: eslint + self.can_output_sarif = False + self.output_sarif = False # ex: https://eslint.org/ self.linter_url = ( "Field 'linter_url' must be overridden at custom linter class level" @@ -88,9 +90,13 @@ def __init__(self, params=None, linter_config=None): self.cli_executable_help = None # Default arg name for configurations to use in linter CLI call self.cli_config_arg_name = "-c" + self.cli_config_default_value = None self.cli_config_extra_args = ( [] ) # Extra arguments to send to cli when a config file is used + self.cli_sarif_args = [] + self.sarif_output_file = None + self.sarif_default_output_file = None self.no_config_if_fix = False self.cli_lint_extra_args = [] # Extra arguments to send to cli everytime self.cli_lint_fix_arg_name = None # Name of the cli argument to send in case of APPLY_FIXES required by user @@ -131,10 +137,14 @@ def __init__(self, params=None, linter_config=None): "enable_linters": [], "disable_descriptors": [], "disable_linters": [], + "disable_errors_linters": [], "post_linter_status": True, } self.is_active = params["default_linter_activation"] + self.output_sarif = ( + params["output_sarif"] if "output_sarif" in params else self.output_sarif + ) self.disable_errors_if_less_than = None self.disable_errors = ( True @@ -177,18 +187,22 @@ def __init__(self, params=None, linter_config=None): self.show_elapsed_time = params.get("show_elapsed_time", False) # Manage apply fixes flag on linter param_apply_fixes = params.get("apply_fixes", "none") + # No fixing config on linter descriptor if self.cli_lint_fix_arg_name is None: self.apply_fixes = False + # APPLY_FIXES is "all" elif param_apply_fixes == "all" or ( isinstance(param_apply_fixes, bool) and param_apply_fixes is True ): self.apply_fixes = True + # APPLY_FIXES is a comma-separated list in a single string elif ( param_apply_fixes != "none" and isinstance(param_apply_fixes, str) and self.name in param_apply_fixes.split(",") ): self.apply_fixes = True + # APPLY_FIXES is a list of strings elif ( param_apply_fixes != "none" and isinstance(param_apply_fixes, list) @@ -198,6 +212,14 @@ def __init__(self, params=None, linter_config=None): else: self.apply_fixes = False + # Disable lint_all_other_linters_files=true if we are in a standalone linter docker image, + # because there are no other linters + if ( + self.lint_all_other_linters_files is True + and config.get("SINGLE_LINTER", "") != "" + ): + self.lint_all_other_linters_files = False + # Config items self.linter_rules_path = ( params["linter_rules_path"] if "linter_rules_path" in params else "." @@ -232,7 +254,7 @@ def __init__(self, params=None, linter_config=None): params["report_folder"] if "report_folder" in params else "" ) - self.load_config_vars() + self.load_config_vars(params) # Manage sub-directory filter if defined if self.files_sub_directory is not None: @@ -342,7 +364,7 @@ def manage_activation(self, params): self.is_active = utils.check_activation_rules(self.activation_rules, self) # Manage configuration variables - def load_config_vars(self): + def load_config_vars(self, params): # Configuration file name: try first NAME + _FILE_NAME, then LANGUAGE + _FILE_NAME # _CONFIG_FILE = _FILE_NAME (config renaming but keeping config ascending compatibility) if config.exists(self.name + "_CONFIG_FILE"): @@ -428,7 +450,7 @@ def load_config_vars(self): # Set config file label if not set by remote rule if self.config_file is not None and self.config_file_label is None: self.config_file_label = self.config_file.replace( - self.DEFAULT_WORKSPACE_DIR, "" + DEFAULT_DOCKER_WORKSPACE_DIR, "" ).replace(self.TEMPLATES_DIR, "") # User override of cli_lint_mode if config.exists(self.name + "_CLI_LINT_MODE"): @@ -475,6 +497,8 @@ def load_config_vars(self): ) if self.disable_errors_if_less_than is not None: self.disable_errors = False + elif self.name in params["disable_errors_linters"]: + self.disable_errors = True elif config.get(self.name + "_DISABLE_ERRORS", "") == "false": self.disable_errors = False elif config.get(self.name + "_DISABLE_ERRORS", "") == "true": @@ -567,6 +591,19 @@ def run(self): return self + def replace_vars(self, variables): + variables_with_replacements = [] + for txt in variables: + if "{{SARIF_OUTPUT_FILE}}" in txt: + txt = txt.replace("{{SARIF_OUTPUT_FILE}}", self.sarif_output_file) + elif "{{REPORT_FOLDER}}" in txt: + txt = txt.replace("{{REPORT_FOLDER}}", self.report_folder) + elif "{{WORKSPACE}}" in txt: + txt = txt.replace("{{WORKSPACE}}", self.workspace) + variables_with_replacements += [txt] + + return variables_with_replacements + def update_files_lint_results( self, linted_files, return_code, file_status, stdout, file_errors_number ): @@ -642,10 +679,27 @@ def collect_files(self, all_files): # lint a single file or whole project def process_linter(self, file=None): + # Remove previous run SARIF file if necessary + if self.sarif_output_file is not None and os.path.isfile( + self.sarif_output_file + ): + os.remove(self.sarif_output_file) # Build command using method locally defined on Linter class command = self.build_lint_command(file) logging.debug(f"[{self.linter_name}] command: {str(command)}") return_code, return_output = self.execute_lint_command(command) + # Move SARIF file if necessary + if ( + self.sarif_output_file is not None + and self.sarif_default_output_file is not None + ): + linter_sarif_report = ( + self.sarif_default_output_file + if os.path.isfile(self.sarif_default_output_file) + else os.path.join(self.workspace, self.sarif_default_output_file) + ) + shutil.move(linter_sarif_report, self.sarif_output_file) + logging.debug(f"Moved {linter_sarif_report} to {self.sarif_output_file}") logging.debug( f"[{self.linter_name}] result: {str(return_code)} {return_output}" ) @@ -696,9 +750,27 @@ def execute_lint_command(self, command): ) return_code = process.returncode return_stdout = utils.decode_utf8(process.stdout) + self.manage_sarif_output(return_stdout) # Return linter result return return_code, return_stdout + def manage_sarif_output(self, return_stdout): + # Manage case when SARIF output is in stdout (and not generated by the linter) + if ( + self.can_output_sarif is True + and self.output_sarif is True + and not os.path.isfile(self.sarif_output_file) + ): + sarif_stdout = utils.find_json_in_stdout(return_stdout) + if sarif_stdout != "": + with open(self.sarif_output_file, "w", encoding="utf-8") as file: + file.write(sarif_stdout) + else: + logging.error( + "[Sarif] ERROR: there is no SARIF output file found, and stdout does not contain SARIF" + ) + logging.error("[Sarif] stdout: " + return_stdout) + # Returns linter version (can be overridden in special cases, like version has special format) def get_linter_version(self): if self.linter_version_cache is not None: @@ -797,12 +869,14 @@ def manage_docker_command(self, command): volume_root = config.get("MEGALINTER_VOLUME_ROOT", "") if volume_root != "": workspace_value = ( - volume_root + "/" + self.workspace.replace("/tmp/lint", "") + volume_root + + "/" + + self.workspace.replace(DEFAULT_DOCKER_WORKSPACE_DIR, "") ) else: workspace_value = self.workspace else: - workspace_value = "/tmp/lint" + workspace_value = DEFAULT_DOCKER_WORKSPACE_DIR docker_command += map( lambda arg, w=workspace_value: arg.replace("{{WORKSPACE}}", w), self.cli_docker_args, @@ -811,7 +885,9 @@ def manage_docker_command(self, command): if type(command) == str: command = " ".join(docker_command) + " " + command else: - command = docker_command + command # ["ls", "-A", "/tmp/lint"] + command = ( + docker_command + command + ) # ["ls", "-A", DEFAULT_DOCKER_WORKSPACE_DIR] return command ######################################## @@ -822,9 +898,10 @@ def before_lint_files(self): pass # Build the CLI command to call to lint a file (can be overridden) - def build_lint_command(self, file=None): + def build_lint_command(self, file=None) -> list: cmd = [self.cli_executable] # Add other lint cli arguments if defined + self.cli_lint_extra_args = self.replace_vars(self.cli_lint_extra_args) cmd += self.cli_lint_extra_args # Add fix argument if defined if self.apply_fixes is True and ( @@ -835,20 +912,37 @@ def build_lint_command(self, file=None): cmd += [self.cli_lint_fix_arg_name] self.try_fix = True # Add user-defined extra arguments if defined + self.cli_lint_user_args = self.replace_vars(self.cli_lint_user_args) cmd += self.cli_lint_user_args # Add config arguments if defined (except for case when no_config_if_fix is True) - if self.config_file is not None: + if ( + self.cli_config_arg_name in cmd + or self.cli_config_arg_name in self.cli_config_extra_args + ): + # User overridden config within LINTER_NAME_ARGUMENTS + cmd += self.cli_config_extra_args + elif self.config_file is not None: + # Config file self.final_config_file = self.config_file if self.cli_docker_image is not None: self.final_config_file = self.final_config_file.replace( - self.workspace, "/tmp/lint" + self.workspace, DEFAULT_DOCKER_WORKSPACE_DIR ) if self.cli_config_arg_name.endswith("="): cmd += [self.cli_config_arg_name + self.final_config_file] elif self.cli_config_arg_name != "": cmd += [self.cli_config_arg_name, self.final_config_file] cmd += self.cli_config_extra_args + elif self.cli_config_default_value is not None: + # Default config value + cmd += [self.cli_config_arg_name, self.cli_config_default_value] + cmd += self.cli_config_extra_args + # Manage SARIF arguments if necessary + cmd += self.get_sarif_arguments() # Add other lint cli arguments after other arguments if defined + self.cli_lint_extra_args_after = self.replace_vars( + self.cli_lint_extra_args_after + ) cmd += self.cli_lint_extra_args_after # Some linters/formatters update files by default. # To avoid that, declare -megalinter-fix-flag as cli_lint_fix_arg_name @@ -865,6 +959,17 @@ def build_lint_command(self, file=None): cmd += self.files return self.manage_docker_command(cmd) + # Manage SARIF arguments + def get_sarif_arguments(self): + if self.can_output_sarif is True and self.output_sarif is True: + self.sarif_output_file = ( + self.report_folder + os.sep + "sarif" + os.sep + self.name + ".sarif" + ) + os.makedirs(os.path.dirname(self.sarif_output_file), exist_ok=True) + self.cli_sarif_args = self.replace_vars(self.cli_sarif_args) + return self.cli_sarif_args + return [] + # Find number of errors in linter stdout log def get_total_number_errors(self, stdout): total_errors = 0 diff --git a/megalinter/MegaLinter.py b/megalinter/MegaLinter.py index 7a96a2f6e58..3f7e236e13a 100644 --- a/megalinter/MegaLinter.py +++ b/megalinter/MegaLinter.py @@ -4,6 +4,7 @@ """ +import argparse import logging import multiprocessing as mp import os @@ -12,6 +13,7 @@ import chalk as c import git from megalinter import ( + Linter, config, flavor_factory, linter_factory, @@ -19,7 +21,11 @@ pre_post_factory, utils, ) -from megalinter.constants import ML_DOC_URL +from megalinter.constants import ( + DEFAULT_DOCKER_WORKSPACE_DIR, + DEFAULT_REPORT_FOLDER_NAME, + ML_DOC_URL, +) from multiprocessing_logging import install_mp_handler @@ -37,14 +43,19 @@ class Megalinter: def __init__(self, params=None): if params is None: params = {} + + # megalinter_exec cli variables + self.arg_input = None + self.arg_output = None + self.linter_version_only = None + self.load_cli_vars() + + # Initialization for lint request cases self.workspace = self.get_workspace() config.init_config(self.workspace) # Initialize runtime config self.github_workspace = config.get("GITHUB_WORKSPACE", self.workspace) self.megalinter_flavor = config.get("MEGALINTER_FLAVOR", "all") - self.report_folder = config.get( - "REPORT_OUTPUT_FOLDER", - config.get("OUTPUT_FOLDER", self.github_workspace + os.path.sep + "report"), - ) + self.initialize_output() self.initialize_logger() self.manage_upgrade_message() self.display_header() @@ -68,12 +79,14 @@ def __init__(self, params=None): self.filter_regex_exclude = None self.cli = params["cli"] if "cli" in params else False self.default_linter_activation = True + self.output_sarif = False # Get enable / disable vars self.enable_descriptors = config.get_list("ENABLE", []) self.enable_linters = config.get_list("ENABLE_LINTERS", []) self.disable_descriptors = config.get_list("DISABLE", []) self.disable_linters = config.get_list("DISABLE_LINTERS", []) + self.disable_errors_linters = config.get_list("DISABLE_ERRORS_LINTERS", []) self.manage_default_linter_activation() self.apply_fixes = config.get_list("APPLY_FIXES", "none") self.show_elapsed_time = ( @@ -84,7 +97,7 @@ def __init__(self, params=None): self.load_config_vars() # Runtime properties self.reporters = [] - self.linters = [] + self.linters: list[Linter] = [] self.file_extensions = [] self.file_names_regex = [] self.status = "success" @@ -109,6 +122,13 @@ def __init__(self, params=None): # Collect files, run linters on them and write reports def run(self): + # Manage case where we only want to return standalone linter version + if self.linter_version_only is True: + standalone_linter = self.linters[0] + linter_version = standalone_linter.get_linter_version() + logging.info(f"{standalone_linter.name}: {linter_version}") + return + # Collect files for each identified linter self.collect_files() @@ -228,25 +248,48 @@ def process_linters_parallel(self, active_linters, linters_do_fixes): def get_workspace(self): default_workspace = config.get("DEFAULT_WORKSPACE", "") github_workspace = config.get("GITHUB_WORKSPACE", "") - # Github action run without override of DEFAULT_WORKSPACE and using /tmp/lint - if ( + # Use CLI input argument + if self.arg_input is not None: + if os.path.isdir(self.arg_input): + # Absolute directory + return self.arg_input + else: + # Relative directory + logging.debug( + f"[Context] workspace sent as input argument: {self.arg_input}" + ) + assert os.path.isdir( + DEFAULT_DOCKER_WORKSPACE_DIR + "/" + self.arg_input + ), ( + f"--input directory not found at {DEFAULT_DOCKER_WORKSPACE_DIR}/" + + self.arg_input + ) + return DEFAULT_DOCKER_WORKSPACE_DIR + "/" + self.arg_input + # Github action run without override of DEFAULT_WORKSPACE and using DEFAULT_DOCKER_WORKSPACE_DIR + elif ( default_workspace == "" and github_workspace != "" - and os.path.isdir(github_workspace + "/tmp/lint") + and os.path.isdir(github_workspace + DEFAULT_DOCKER_WORKSPACE_DIR) ): logging.debug( - "[Context] Github action run without override of DEFAULT_WORKSPACE - /tmp/lint" + "[Context] Github action run without override of DEFAULT_WORKSPACE - " + + DEFAULT_DOCKER_WORKSPACE_DIR ) - return github_workspace + "/tmp/lint" + return github_workspace + DEFAULT_DOCKER_WORKSPACE_DIR # Docker run without override of DEFAULT_WORKSPACE elif default_workspace != "" and os.path.isdir( - "/tmp/lint" + os.path.sep + default_workspace + DEFAULT_DOCKER_WORKSPACE_DIR + os.path.sep + default_workspace ): logging.debug( "[Context] Docker run without override of DEFAULT_WORKSPACE" - f" - {default_workspace}/tmp/lint{os.path.sep + default_workspace}" + f" - {default_workspace}{DEFAULT_DOCKER_WORKSPACE_DIR}{os.path.sep + default_workspace}" + ) + return ( + default_workspace + + DEFAULT_DOCKER_WORKSPACE_DIR + + os.path.sep + + default_workspace ) - return default_workspace + "/tmp/lint" + os.path.sep + default_workspace # Docker run with override of DEFAULT_WORKSPACE for test cases elif default_workspace != "" and os.path.isdir(default_workspace): logging.debug( @@ -254,11 +297,12 @@ def get_workspace(self): ) return default_workspace # Docker run test classes without override of DEFAULT_WORKSPACE - elif os.path.isdir("/tmp/lint"): + elif os.path.isdir(DEFAULT_DOCKER_WORKSPACE_DIR): logging.debug( - "[Context] Docker run test classes without override of DEFAULT_WORKSPACE - /tmp/lint" + "[Context] Docker run test classes without override of DEFAULT_WORKSPACE - " + + DEFAULT_DOCKER_WORKSPACE_DIR ) - return "/tmp/lint" + return DEFAULT_DOCKER_WORKSPACE_DIR # Github action with override of DEFAULT_WORKSPACE elif ( default_workspace != "" @@ -270,7 +314,7 @@ def get_workspace(self): f" - {github_workspace + os.path.sep + default_workspace}" ) return github_workspace + os.path.sep + default_workspace - # Github action without override of DEFAULT_WORKSPACE and NOT using /tmp/lint + # Github action without override of DEFAULT_WORKSPACE and NOT using DEFAULT_DOCKER_WORKSPACE_DIR elif ( default_workspace == "" and github_workspace != "" @@ -278,7 +322,8 @@ def get_workspace(self): and os.path.isdir(github_workspace) ): logging.debug( - "[Context] Github action without override of DEFAULT_WORKSPACE and NOT using /tmp/lint" + "[Context] Github action without override of DEFAULT_WORKSPACE" + f" and NOT using {DEFAULT_DOCKER_WORKSPACE_DIR}" f" - {github_workspace}" ) return github_workspace @@ -290,6 +335,29 @@ def get_workspace(self): f"GITHUB_WORKSPACE: {github_workspace}" ) + # Manage CLI variables + def load_cli_vars(self): + parser = argparse.ArgumentParser() + parser.add_argument("--input", type=str, help="Input folder to lint") + parser.add_argument("--output", type=str, help="Output file or directory") + parser.add_argument( + "--linterversion", + nargs="?", + const="yes", + default=None, + help="Collect version of standalone linter", + ) + args, _unknown = parser.parse_known_args() + # Input folder to lint + if args.input: + self.arg_input = args.input + # Report folder or file + if args.output: + self.arg_output = args.output + # Linter version + if args.linterversion == "yes": + self.linter_version_only = True + # Manage configuration variables def load_config_vars(self): # Linter rules root path @@ -323,6 +391,9 @@ def load_config_vars(self): self.ignore_generated_files = ( config.get("IGNORE_GENERATED_FILES", "false") == "true" ) + # Manage SARIF output + if config.get("SARIF_REPORTER", "") == "true": + self.output_sarif = True # Calculate default linter activation according to env variables def manage_default_linter_activation(self): @@ -347,16 +418,25 @@ def load_linters(self): "enable_linters": self.enable_linters, "disable_descriptors": self.disable_descriptors, "disable_linters": self.disable_linters, + "disable_errors_linters": self.disable_errors_linters, "workspace": self.workspace, "github_workspace": self.github_workspace, "report_folder": self.report_folder, "apply_fixes": self.apply_fixes, "show_elapsed_time": self.show_elapsed_time, + "output_sarif": self.output_sarif, } # Build linters from descriptor files # if flavor selected and no flavor suggestion, ignore linters that are not in current flavor) - if ( + if self.megalinter_flavor == "none": + # Single linter docker image + unique_linter = config.get("SINGLE_LINTER") + all_linters = linter_factory.list_linters_by_name( + linter_init_params, [unique_linter] + ) + elif ( + # Flavored MegaLinter self.megalinter_flavor != "all" and config.get("FLAVOR_SUGGESTIONS", "true") != "true" ): @@ -364,6 +444,7 @@ def load_linters(self): linter_init_params, self.megalinter_flavor ) else: + # main flavor all_linters = linter_factory.list_all_linters(linter_init_params) skipped_linters = [] @@ -571,6 +652,32 @@ def list_git_ignored_files(self): ignored_files = sorted(list(ignored_files)) return ignored_files + def initialize_output(self): + self.report_folder = config.get( + "REPORT_OUTPUT_FOLDER", + config.get( + "OUTPUT_FOLDER", + self.github_workspace + os.path.sep + DEFAULT_REPORT_FOLDER_NAME, + ), + ) + # Manage case when output is sent as argument. + if self.arg_output is not None: + if ".sarif" in self.arg_output: + if "/" in self.arg_output: + # --output /logs/megalinter/myoutputfile.sarif + self.report_folder = os.path.dirname(self.arg_output) + config.set( + "SARIF_REPORTER_FILE_NAME", os.path.basename(self.arg_output) + ) + else: + # --output myoutputfile.sarif + config.set("SARIF_REPORTER_FILE_NAME", self.arg_output) + elif os.path.isdir(self.arg_output): + # --output /logs/megalinter + self.report_folder = self.arg_output + # Initialize output dir + os.makedirs(self.report_folder, exist_ok=True) + def initialize_logger(self): logging_level_key = config.get("LOG_LEVEL", "INFO").upper() logging_level_list = { @@ -588,19 +695,34 @@ def initialize_logger(self): else logging.INFO ) log_file = ( - self.report_folder + os.path.sep + config.get("LOG_FILE", "mega-linter.log") - ) - if not os.path.isdir(os.path.dirname(log_file)): - os.makedirs(os.path.dirname(log_file), exist_ok=True) - logging.basicConfig( - force=True, - level=logging_level, - format="%(message)s", - handlers=[ - logging.FileHandler(log_file, "w", "utf-8"), - logging.StreamHandler(sys.stdout), - ], + self.report_folder + os.path.sep + config.get("LOG_FILE", "megalinter.log") ) + if ( + config.get("LOG_FILE", "") == "none" + or config.get("PARALLEL", "true") == "true" + ): + # Do not log console output in a file + logging.basicConfig( + force=True, + level=logging_level, + format="%(message)s", + handlers=[ + logging.StreamHandler(sys.stdout), + ], + ) + else: + # Log console output in a file + if not os.path.isdir(os.path.dirname(log_file)): + os.makedirs(os.path.dirname(log_file), exist_ok=True) + logging.basicConfig( + force=True, + level=logging_level, + format="%(message)s", + handlers=[ + logging.FileHandler(log_file, "w", "utf-8"), + logging.StreamHandler(sys.stdout), + ], + ) @staticmethod def display_header(): @@ -621,12 +743,15 @@ def display_header(): logging.info("The MegaLinter documentation can be found at:") logging.info(" - " + ML_DOC_URL) logging.info(utils.format_hyphens("")) - logging.info("GITHUB_REPOSITORY: " + os.environ.get("GITHUB_REPOSITORY", "")) - # logging.info("GITHUB_SHA: " + os.environ.get("GITHUB_SHA", "")) - logging.info("GITHUB_REF: " + os.environ.get("GITHUB_REF", "")) - # logging.info("GITHUB_TOKEN: " + os.environ.get("GITHUB_TOKEN", "")) - logging.info("GITHUB_RUN_ID: " + os.environ.get("GITHUB_RUN_ID", "")) - logging.info("PAT: " + "set" if os.environ.get("PAT", "") != "" else "") + if os.environ.get("GITHUB_REPOSITORY", "") != "": + logging.info( + "GITHUB_REPOSITORY: " + os.environ.get("GITHUB_REPOSITORY", "") + ) + # logging.info("GITHUB_SHA: " + os.environ.get("GITHUB_SHA", "")) + logging.info("GITHUB_REF: " + os.environ.get("GITHUB_REF", "")) + # logging.info("GITHUB_TOKEN: " + os.environ.get("GITHUB_TOKEN", "")) + logging.info("GITHUB_RUN_ID: " + os.environ.get("GITHUB_RUN_ID", "")) + logging.info("PAT: " + "set" if os.environ.get("PAT", "") != "" else "") # Display config variables for debug mode for name, value in sorted(config.get_config().items()): logging.debug("" + name + "=" + str(value)) diff --git a/megalinter/__init__.py b/megalinter/__init__.py index c34f553ab1d..2b5fce8f5c3 100644 --- a/megalinter/__init__.py +++ b/megalinter/__init__.py @@ -15,5 +15,6 @@ "plugin_factory", "pre_post_factory", "utils", - "alpaca", + "alpaca" + # "megalinter_server" ] diff --git a/megalinter/alpaca.py b/megalinter/alpaca.py index e5c1b7e8b81..cc5d58b06c7 100644 --- a/megalinter/alpaca.py +++ b/megalinter/alpaca.py @@ -1,4 +1,5 @@ #!/usr/bin/env python3 +# flake8: noqa from megalinter import config @@ -10,44 +11,27 @@ def alpaca(): print( """ -..........................................................................................---------- -......................-:./-:::-.............................................................-------- -...................---:--:-::-:+/-........................................................---------- -................../-....-----..---/:.....................................................----------- -.................-:.....---.......-//.................________________..................------------ -................-....-:++-://+/....-/-.............../ \\.................----------- -................-..-+so//::://://.../:............../ Je suis \\...............------------ -................-.-+hyhs:-:+ohy+/-..-/.............< le lama NUL :) |...............------------- -...............:/.-:oso+::-oyys/::..-o-.............\\_________________/.............-.------------- -..............-ooo+:++s+yy+/ss/:-/..:o/............................................-..-------------- -..............-+oo///:::oyo:--/:....-+/............................................-.--------------- -.............../ys+:::+oyyy+........-/y-...................---::-/++/-/:-..........----------------- -.............../ssyy++sso+/:---:/-..--s-................--:o+---.:/+/:::-+///:-.-.------------------ -...............-sososhhhyyso+/---.....+/...........-://+++/::-.....----::::::ss+-------------------- -...............:+s+//+/+///:-....--::.-s-......-:/+o+/-.-----------------------:++:----------------- -...............:s+ydy++////::/::/+::/-.s/..:/oo+/:...--------------------..------:+:---------------: -...............:y-+ysysss++oo+/:sdo:-..sho+++/-..-.../-./:------------------:::::::+:--------------: -...............-s-:/:/++++///:/::o/--../y+-......-..--..o:--------+/:-:::--:-:::::-:o--------------: -...............-s--+oo/+//////:/:::-...-y+o++:-....-+sso+sss+:---:///:+::::+y/:-:---/o-------------: -...............++-::+s/+://////:::-.....+s:--://-...-syys--::y-.--::::::/:::hy::----ss-------------: -...........--..s:--:-----::////::-......//.-:--//:-...:+y:..-+-.--/-:+://:::sh/o+-:oyy-------------: -....----..-.---+-.-----:-::///:--.....-/:o:/::++o+:.....:o-.......--:o/+o/::oo+omo:y+h-------------- --...--::://:o+++/.-:-::::///:::--.-::/:-//-/::+/:+/....../-.-:-----:-:o+o//:s:/ymsosys----:--------- ---.....--:::/:-+s-/so+o+::::::::-::::-:/:..-:::so/-+--.------/+:----:-+y//:+y++ysoy+h://:----------- -------.----:::/:+/:+soossssoso++/+o//+:------::/y/::---------/+/:---:-:s::/yo+oy+osoh+oo/:::-------: -------------:+s::/-:osssosysso++/+/---------/::/y/:----------o/::--:-:/y+/oso+o+ssoyh++s+----------: -----:::/+:---//--/:-/+oo++oo/+/::::--------////:/:----------:s::::-/-:/yy++y+sysosyy+/////::------:: ---------::--------o/-:/o+//o:::::////:----:s:/h/////:-::--+/++::::////odoysyshsoshs+++/+///:------:: -------------------:+//::////////+///------oo:os+///:://::/o:+/://++o++shohoyyo+/+++++/+////:-----::: --------------:-----/o++++++o++//:::::---:+/+:://///:-//://++o:/oso+oshhso+/////++///++++/::------::: -:----------------:/++s+/:/+/:::::::---/s++//://///::-///+/sdossyyys+++///////+hs+/+/+/+/::-------::: -+--------:---::-:+++++++:---:--:/:/+oshsoo:///////////soo+yo/////+////++//////syssssso/----------::: --------------++//+/++//++++++so/+ossssso+:/+yo+oohhsyyo+++o++++++//+++ho+/////////:::::----------::: -------------/+o+/////+//+/+ssyyhhyshmhdyhhhssyyoo+////++/+///+o/+///://///:::--------------------::: ----------------/+///+++++++++//+/+hho+o/+o+////::::::---------:::-:::::::::-----------//--------:::: -------------------If you do not want to see me, define PRINT_ALPACA: false ------------------------ ----------------------------------------------------------------------------------------------------- + .:oool' ,looo; + .xNXNXl .dXNNXo. + lXXXX0c. 'oKXXN0; + .oKNXNX0kxdddddddoc,. .;lodddddddxk0XXXX0c + .:kKXXXXXXXXXXXXNXX0dllx0XXXXXXXXXXXXXXXKd, + .,cdkOOOOOOOO0KXXXXXXXXXXK0OOOOOOOkxo:' + 'ckKXNNNXkc' + ':::::;. .c0XX0l. .;::::;. + 'xXXXXXx' :kx: ;OXXXXKd. + .dKNNXXO; .. :0XXXXKl. + .lKXXXX0: .lKXXXX0: + :0XXXXKl. .dXXXXXk, + ;kXXXXKd:cxXXXXXx' + 'xXNXXXXXXXXXKo. + .oKXXXXNXXX0l. + .lKNNXNNXO: + ,looool' - """ +========================================================== +============= MegaLinter, by Ox.security ============= +========================================================== +""" ) return True diff --git a/megalinter/config.py b/megalinter/config.py index 249abe66775..f99a1b7cd63 100644 --- a/megalinter/config.py +++ b/megalinter/config.py @@ -112,6 +112,12 @@ def get(config_var=None, default=None): return val +def set(config_var, value): + global CONFIG_DATA + assert CONFIG_DATA is not None, "Config has not been initialized yet !" + CONFIG_DATA[config_var] = value + + def get_list(config_var, default=None): var = get(config_var, None) if var is not None: diff --git a/megalinter/constants.py b/megalinter/constants.py index 4d674953cbb..358184c6f9a 100644 --- a/megalinter/constants.py +++ b/megalinter/constants.py @@ -1,12 +1,22 @@ -ML_REPO_OWNER = "megalinter" +ML_REPO_OWNER = "oxsecurity" ML_REPO_NAME = "megalinter" ML_REPO = f"{ML_REPO_OWNER}/{ML_REPO_NAME}" ML_REPO_URL = f"https://github.com/{ML_REPO_OWNER}/{ML_REPO_NAME}" +ML_DOC_URL = "https://oxsecurity.github.io/megalinter/latest" ML_REPO_ISSUES_URL = f"https://github.com/{ML_REPO_OWNER}/{ML_REPO_NAME}/issues" -ML_DOC_URL = "https://megalinter.github.io" ML_DOC_URL_DESCRIPTORS_ROOT = f"{ML_DOC_URL}/descriptors" -ML_DOCKER_OWNER = "megalinter" +ML_DOCKER_OWNER = "oxsecurity" ML_DOCKER_NAME = "megalinter" ML_DOCKER_IMAGE = f"{ML_DOCKER_OWNER}/{ML_DOCKER_NAME}" ML_DOCKER_IMAGE_LEGACY = "nvuillam/mega-linter" +ML_DOCKER_IMAGE_LEGACY_V5 = "megalinter/megalinter" + +DEFAULT_DOCKER_WORKSPACE_DIR = "/tmp/lint" +DEFAULT_REPORT_FOLDER_NAME = "megalinter-reports" +DEFAULT_SARIF_REPORT_FILE_NAME = "megalinter-report.sarif" +DEFAULT_SARIF_SCHEMA_URI = ( + "https://schemastore.azurewebsites.net/schemas/json/sarif-2.1.0-rtm.5.json" +) +DEFAULT_SARIF_VERSION = "2.1.0" +DEFAULT_RELEASE = "beta" diff --git a/megalinter/descriptors/action.megalinter-descriptor.yml b/megalinter/descriptors/action.megalinter-descriptor.yml index e033f20de93..5f9cd5315df 100644 --- a/megalinter/descriptors/action.megalinter-descriptor.yml +++ b/megalinter/descriptors/action.megalinter-descriptor.yml @@ -6,6 +6,9 @@ files_sub_directory: .github/workflows file_extensions: - ".yml" - ".yaml" +install: + apk: + - go test_folder: action linters: # ACTIONLINT diff --git a/megalinter/descriptors/all_flavors.json b/megalinter/descriptors/all_flavors.json index 6acc1d037f2..a98207a402f 100644 --- a/megalinter/descriptors/all_flavors.json +++ b/megalinter/descriptors/all_flavors.json @@ -1,72 +1,24 @@ { "ci_light": { "descriptors": [ - "GIT" + "BASH" ], "label": "Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas,XML", "linters": [ - "BASH_EXEC", "BASH_SHELLCHECK", "BASH_SHFMT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GROOVY_NPM_GROOVY_LINT", "JSON_JSONLINT", "JSON_ESLINT_PLUGIN_JSONC", "JSON_V8R", "JSON_PRETTIER", - "XML_XMLLINT", - "YAML_PRETTIER", - "YAML_YAMLLINT", - "YAML_V8R" - ] - }, - "dart": { - "descriptors": [ - "GIT" - ], - "label": "Optimized for DART based projects", - "linters": [ - "ACTION_ACTIONLINT", - "ANSIBLE_ANSIBLE_LINT", - "BASH_EXEC", - "BASH_SHELLCHECK", - "BASH_SHFMT", - "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", - "CSS_STYLELINT", - "CSS_SCSS_LINT", - "DART_DARTANALYZER", - "DOCKERFILE_DOCKERFILELINT", - "DOCKERFILE_HADOLINT", - "EDITORCONFIG_EDITORCONFIG_CHECKER", - "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", - "GRAPHQL_GRAPHQL_SCHEMA_LINTER", - "GROOVY_NPM_GROOVY_LINT", - "HTML_HTMLHINT", - "JSON_JSONLINT", - "JSON_ESLINT_PLUGIN_JSONC", - "JSON_V8R", - "JSON_PRETTIER", - "KOTLIN_KTLINT", - "KUBERNETES_KUBEVAL", - "KUBERNETES_KUBECONFORM", - "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", - "MARKDOWN_MARKDOWN_LINK_CHECK", - "MARKDOWN_MARKDOWN_TABLE_FORMATTER", - "OPENAPI_SPECTRAL", - "PROTOBUF_PROTOLINT", - "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", - "SPELL_MISSPELL", - "SPELL_CSPELL", - "SQL_SQL_LINT", - "SQL_SQLFLUFF", - "TEKTON_TEKTON_LINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_TRIVY", "XML_XMLLINT", "YAML_PRETTIER", "YAML_YAMLLINT", @@ -75,7 +27,9 @@ }, "documentation": { "descriptors": [ - "GIT" + "ACTION", + "BASH", + "KOTLIN" ], "label": "MegaLinter for documentation projects", "linters": [ @@ -85,14 +39,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -104,13 +55,17 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", @@ -124,9 +79,13 @@ }, "dotnet": { "descriptors": [ + "ACTION", + "ARM", + "BASH", "CSHARP", - "GIT", - "POWERSHELL" + "KOTLIN", + "POWERSHELL", + "VBDOTNET" ], "label": "Optimized for C, C++, C# or VB based projects", "linters": [ @@ -139,16 +98,13 @@ "C_CPPLINT", "COPYPASTE_JSCPD", "CPP_CPPLINT", - "CREDENTIALS_SECRETLINT", "CSHARP_DOTNET_FORMAT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", "GHERKIN_GHERKIN_LINT", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -160,14 +116,18 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "POWERSHELL_POWERSHELL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", @@ -183,8 +143,10 @@ }, "go": { "descriptors": [ - "GIT", - "GO" + "ACTION", + "BASH", + "GO", + "KOTLIN" ], "label": "Optimized for GO based projects", "linters": [ @@ -194,14 +156,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GO_GOLANGCI_LINT", "GO_REVIVE", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", @@ -215,13 +174,17 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", @@ -235,8 +198,10 @@ }, "java": { "descriptors": [ - "GIT", - "JAVA" + "ACTION", + "BASH", + "JAVA", + "KOTLIN" ], "label": "Optimized for JAVA based projects", "linters": [ @@ -247,14 +212,11 @@ "BASH_SHFMT", "CLOJURE_CLJ_KONDO", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -267,13 +229,17 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", @@ -287,7 +253,9 @@ }, "javascript": { "descriptors": [ - "GIT", + "ACTION", + "BASH", + "KOTLIN", "TYPESCRIPT" ], "label": "Optimized for JAVASCRIPT or TYPESCRIPT based projects", @@ -299,14 +267,11 @@ "BASH_SHFMT", "COFFEE_COFFEELINT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -322,13 +287,17 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", @@ -346,7 +315,9 @@ }, "php": { "descriptors": [ - "GIT", + "ACTION", + "BASH", + "KOTLIN", "PHP" ], "label": "Optimized for PHP based projects", @@ -357,14 +328,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -376,18 +344,21 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", - "PHP_BUILTIN", "PHP_PHPCS", "PHP_PHPSTAN", "PHP_PSALM", "PHP_PHPLINT", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", @@ -401,7 +372,9 @@ }, "python": { "descriptors": [ - "GIT" + "ACTION", + "BASH", + "KOTLIN" ], "label": "Optimized for PYTHON based projects", "linters": [ @@ -411,14 +384,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -430,7 +400,6 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", @@ -441,10 +410,15 @@ "PYTHON_ISORT", "PYTHON_BANDIT", "PYTHON_MYPY", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "RST_RST_LINT", "RST_RSTCHECK", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", @@ -458,8 +432,9 @@ }, "ruby": { "descriptors": [ - "GIT", - "RUBY" + "ACTION", + "BASH", + "KOTLIN" ], "label": "Optimized for RUBY based projects", "linters": [ @@ -469,14 +444,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -488,14 +460,18 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "RUBY_RUBOCOP", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", @@ -509,7 +485,9 @@ }, "rust": { "descriptors": [ - "GIT", + "ACTION", + "BASH", + "KOTLIN", "RUST" ], "label": "Optimized for RUST based projects", @@ -520,14 +498,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -539,14 +514,18 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "RUST_CLIPPY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", @@ -560,7 +539,9 @@ }, "salesforce": { "descriptors": [ - "GIT", + "ACTION", + "BASH", + "KOTLIN", "SALESFORCE" ], "label": "Optimized for Salesforce based projects", @@ -571,14 +552,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -590,16 +568,20 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SALESFORCE_SFDX_SCANNER_APEX", "SALESFORCE_SFDX_SCANNER_AURA", "SALESFORCE_SFDX_SCANNER_LWC", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", @@ -611,60 +593,37 @@ "YAML_V8R" ] }, - "scala": { - "descriptors": [ - "GIT", - "SCALA" - ], - "label": "Optimized for SCALA based projects", + "security": { + "descriptors": [], + "label": "Optimized for security", "linters": [ - "ACTION_ACTIONLINT", "ANSIBLE_ANSIBLE_LINT", "BASH_EXEC", "BASH_SHELLCHECK", - "BASH_SHFMT", - "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", - "CSS_STYLELINT", - "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", + "CLOUDFORMATION_CFN_LINT", "DOCKERFILE_HADOLINT", - "EDITORCONFIG_EDITORCONFIG_CHECKER", - "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", - "GRAPHQL_GRAPHQL_SCHEMA_LINTER", - "GROOVY_NPM_GROOVY_LINT", - "HTML_HTMLHINT", - "JSON_JSONLINT", - "JSON_ESLINT_PLUGIN_JSONC", - "JSON_V8R", - "JSON_PRETTIER", - "KOTLIN_KTLINT", "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", - "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", - "MARKDOWN_MARKDOWN_LINK_CHECK", - "MARKDOWN_MARKDOWN_TABLE_FORMATTER", - "OPENAPI_SPECTRAL", - "PROTOBUF_PROTOLINT", - "SCALA_SCALAFIX", - "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", - "SPELL_MISSPELL", - "SPELL_CSPELL", - "SQL_SQL_LINT", - "SQL_SQLFLUFF", - "TEKTON_TEKTON_LINT", - "XML_XMLLINT", - "YAML_PRETTIER", - "YAML_YAMLLINT", - "YAML_V8R" + "PYTHON_BANDIT", + "REPOSITORY_DEVSKIM", + "REPOSITORY_DUSTILOCK", + "REPOSITORY_GITLEAKS", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_SYFT", + "REPOSITORY_TRIVY", + "TERRAFORM_TFLINT", + "TERRAFORM_TERRASCAN", + "TERRAFORM_TERRAGRUNT", + "TERRAFORM_CHECKOV", + "TERRAFORM_KICS" ] }, "swift": { "descriptors": [ - "GIT" + "ACTION", + "BASH", + "KOTLIN" ], "label": "Optimized for SWIFT based projects", "linters": [ @@ -674,14 +633,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -693,13 +649,17 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", @@ -714,7 +674,9 @@ }, "terraform": { "descriptors": [ - "GIT" + "ACTION", + "BASH", + "KOTLIN" ], "label": "Optimized for TERRAFORM based projects", "linters": [ @@ -724,14 +686,11 @@ "BASH_SHELLCHECK", "BASH_SHFMT", "COPYPASTE_JSCPD", - "CREDENTIALS_SECRETLINT", "CSS_STYLELINT", "CSS_SCSS_LINT", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", - "GIT_GIT_DIFF", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", "GROOVY_NPM_GROOVY_LINT", "HTML_HTMLHINT", @@ -743,13 +702,17 @@ "KUBERNETES_KUBEVAL", "KUBERNETES_KUBECONFORM", "MARKDOWN_MARKDOWNLINT", - "MARKDOWN_REMARK_LINT", "MARKDOWN_MARKDOWN_LINK_CHECK", "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PROTOBUF_PROTOLINT", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_TRIVY", "SNAKEMAKE_LINT", - "SNAKEMAKE_SNAKEFMT", "SPELL_MISSPELL", "SPELL_CSPELL", "SQL_SQL_LINT", diff --git a/megalinter/descriptors/ansible.megalinter-descriptor.yml b/megalinter/descriptors/ansible.megalinter-descriptor.yml index 38b5da0620c..9297b1b1743 100644 --- a/megalinter/descriptors/ansible.megalinter-descriptor.yml +++ b/megalinter/descriptors/ansible.megalinter-descriptor.yml @@ -2,6 +2,7 @@ descriptor_id: ANSIBLE descriptor_type: tooling_format descriptor_flavors: - all_flavors # Applicable to CI in any language project + - security files_sub_directory: ansible file_names_not_ends_with: - "vault.yml" diff --git a/megalinter/descriptors/arm.megalinter-descriptor.yml b/megalinter/descriptors/arm.megalinter-descriptor.yml index 247c9b41b02..08ba16f1fb5 100644 --- a/megalinter/descriptors/arm.megalinter-descriptor.yml +++ b/megalinter/descriptors/arm.megalinter-descriptor.yml @@ -6,6 +6,21 @@ file_extensions: - ".json" file_contains_regex: - 'schema\.management\.azure\.com' +install: + apk: + - icu-libs + dockerfile: + - ARG PWSH_VERSION='latest' + - ARG PWSH_DIRECTORY='/opt/microsoft/powershell' + - | + RUN mkdir -p ${PWSH_DIRECTORY} \ + && curl --retry 5 --retry-delay 5 -s https://api.github.com/repos/powershell/powershell/releases/${PWSH_VERSION} \ + | grep browser_download_url \ + | grep linux-alpine-x64 \ + | cut -d '"' -f 4 \ + | xargs -n 1 wget -O - \ + | tar -xzC ${PWSH_DIRECTORY} \ + && ln -sf ${PWSH_DIRECTORY}/pwsh /usr/bin/pwsh linters: # ARM TTK - class: ArmLinter diff --git a/megalinter/descriptors/bash.megalinter-descriptor.yml b/megalinter/descriptors/bash.megalinter-descriptor.yml index ddf2af4e158..c3cad2a0994 100644 --- a/megalinter/descriptors/bash.megalinter-descriptor.yml +++ b/megalinter/descriptors/bash.megalinter-descriptor.yml @@ -8,6 +8,9 @@ file_extensions: - ".bash" - ".dash" - ".ksh" +install: + apk: + - bash test_folder: shell linters: # Bash Built in Linter @@ -20,6 +23,9 @@ linters: Note: You can run `git add --chmod=+x myfile.sh` to make a file executable on Windows linter_megalinter_ref_url: never name: BASH_EXEC + descriptor_flavors: + - all_flavors + - security cli_executable_help: bash cli_executable_version: bash cli_help_arg_name: "--help" @@ -37,7 +43,12 @@ linters: # Shellcheck - linter_name: shellcheck name: BASH_SHELLCHECK + descriptor_flavors: + - all_flavors + - ci_light + - security linter_url: https://github.com/koalaman/shellcheck + linter_repo: https://github.com/koalaman/shellcheck linter_rules_url: https://github.com/koalaman/shellcheck#gallery-of-bad-code linter_rules_inline_disable_url: https://github.com/koalaman/shellcheck/wiki/Ignore linter_megalinter_ref_url: never @@ -85,6 +96,7 @@ linters: - linter_name: shfmt is_formatter: true linter_url: https://github.com/mvdan/sh + linter_repo: https://github.com/mvdan/sh linter_megalinter_ref_url: "no" name: BASH_SHFMT cli_lint_mode: list_of_files @@ -101,6 +113,8 @@ linters: - "shfmt -d myfile.sh" - "shfmt -w myfile.sh" # Fix install: + apk: + - go dockerfile: - FROM mvdan/shfmt:latest-alpine as shfmt - COPY --from=shfmt /bin/shfmt /usr/bin/ diff --git a/megalinter/descriptors/clojure.megalinter-descriptor.yml b/megalinter/descriptors/clojure.megalinter-descriptor.yml index 72d4a44cedb..73634562022 100644 --- a/megalinter/descriptors/clojure.megalinter-descriptor.yml +++ b/megalinter/descriptors/clojure.megalinter-descriptor.yml @@ -11,6 +11,7 @@ linters: # clj-kondo - linter_name: clj-kondo linter_url: https://github.com/borkdude/clj-kondo + linter_repo: https://github.com/borkdude/clj-kondo linter_rules_url: https://github.com/borkdude/clj-kondo#features linter_banner_image_url: https://github.com/borkdude/clj-kondo/raw/master/logo/logo-300dpi.png linter_rules_configuration_url: https://github.com/borkdude/clj-kondo/blob/master/doc/config.md#configuration diff --git a/megalinter/descriptors/cloudformation.megalinter-descriptor.yml b/megalinter/descriptors/cloudformation.megalinter-descriptor.yml index 27cdb472f93..eb8776a5061 100644 --- a/megalinter/descriptors/cloudformation.megalinter-descriptor.yml +++ b/megalinter/descriptors/cloudformation.megalinter-descriptor.yml @@ -1,5 +1,7 @@ descriptor_id: CLOUDFORMATION descriptor_type: tooling_format +descriptor_flavors: + - security file_extensions: - ".yml" - ".yaml" @@ -10,19 +12,25 @@ file_contains_regex: linters: # AWS CloudFormation Lint - linter_name: cfn-lint - linter_url: https://github.com/martysweet/cfn-lint - linter_rules_url: https://github.com/martysweet/cfn-lint#what-can-cfn-lint-do - linter_banner_image_url: https://raw.githubusercontent.com/aws-cloudformation/cfn-python-lint/master/logo/cfn-lint-label%401x.png + can_output_sarif: true + linter_url: https://github.com/aws-cloudformation/cfn-lint + linter_repo: https://github.com/aws-cloudformation/cfn-lint + linter_rules_url: https://github.com/aws-cloudformation/cfn-lint/blob/main/docs/rules.md + linter_banner_image_url: https://raw.githubusercontent.com/aws-cloudformation/cfn-lint/main/logo.png config_file_name: .cfnlintrc.yml cli_config_arg_name: "--config-file" + cli_lint_mode: list_of_files + cli_sarif_args: + - --format + - sarif + - --output-file + - "{{SARIF_OUTPUT_FILE}}" examples: - "cfn-lint myfile.yml" - "cfn-lint --config-file .cfnlintrc.yml myfile.yml" install: pip: - cfn-lint - npm: - - asl-validator ide: atom: - name: atom-cfn-lint @@ -30,6 +38,9 @@ linters: idea: - name: cfn-lint url: https://plugins.jetbrains.com/plugin/10973-cfn-lint + sublime: + - name: SublimeLinter CloudFormation + url: https://packagecontrol.io/packages/SublimeLinter-contrib-cloudformation vscode: - name: vscode-cfn-lint url: https://marketplace.visualstudio.com/items?itemName=kddejong.vscode-cfn-lint diff --git a/megalinter/descriptors/copypaste.megalinter-descriptor.yml b/megalinter/descriptors/copypaste.megalinter-descriptor.yml index 3a680faad77..98f5f6a85d6 100644 --- a/megalinter/descriptors/copypaste.megalinter-descriptor.yml +++ b/megalinter/descriptors/copypaste.megalinter-descriptor.yml @@ -38,7 +38,7 @@ linters: - "--reporters" - "console,html" - "--output" - - "./report/copy-paste/" + - ./{{REPORT_FOLDER}}/copy-paste/ # - "--exitCode" # uncomment when jscpd > 3.4.0 # - "1" cli_lint_extra_args_after: @@ -50,5 +50,9 @@ linters: - "jscpd --output ./report/copy-paste/ -c .jscpd.json ." downgraded_version: true install: + apk: + - nodejs + - npm + - yarn npm: - jscpd@3.3.26 diff --git a/megalinter/descriptors/cpp.megalinter-descriptor.yml b/megalinter/descriptors/cpp.megalinter-descriptor.yml index 1d4644955a4..4911188c356 100644 --- a/megalinter/descriptors/cpp.megalinter-descriptor.yml +++ b/megalinter/descriptors/cpp.megalinter-descriptor.yml @@ -20,6 +20,7 @@ linters: - linter_name: cpplint name: CPP_CPPLINT linter_url: https://github.com/cpplint/cpplint + linter_repo: https://github.com/cpplint/cpplint linter_rules_url: https://google.github.io/styleguide/cppguide.html cli_lint_mode: list_of_files cli_help_arg_name: "--help" diff --git a/megalinter/descriptors/credentials.megalinter-descriptor.yml b/megalinter/descriptors/credentials.megalinter-descriptor.yml deleted file mode 100644 index 261f1b2988a..00000000000 --- a/megalinter/descriptors/credentials.megalinter-descriptor.yml +++ /dev/null @@ -1,29 +0,0 @@ -descriptor_id: CREDENTIALS -descriptor_type: other -descriptor_flavors: - - all_flavors # Applicable to CI in any language project -lint_all_files: true -linters: - # SECRETLINT - - class: SecretLintLinter - linter_name: secretlint - linter_url: https://github.com/secretlint/secretlint - linter_repo: https://github.com/secretlint/secretlint - linter_banner_image_url: https://github.com/secretlint/secretlint/raw/main/docs/assets/SecretLintLP.png - linter_rules_url: https://github.com/secretlint/secretlint#rule-packages - linter_rules_configuration_url: https://github.com/secretlint/secretlint#configuration - linter_megalinter_ref_url: https://github.com/secretlint/secretlint#mega-linter - config_file_name: .secretlintrc.json - cli_config_arg_name: "--secretlintrc" - cli_lint_mode: project - cli_lint_extra_args_after: - - "**/*" - cli_help_arg_name: "--help" - examples: - - 'secretlint "*/**"' - - 'secretlint --secretlintrc .secretlintrc.json "**/*"' - downgraded_version: true - install: - npm: - - secretlint@4.1.0 - - "@secretlint/secretlint-rule-preset-recommend@4.1.0" diff --git a/megalinter/descriptors/csharp.megalinter-descriptor.yml b/megalinter/descriptors/csharp.megalinter-descriptor.yml index bbcaa09e5e5..c37c7682727 100644 --- a/megalinter/descriptors/csharp.megalinter-descriptor.yml +++ b/megalinter/descriptors/csharp.megalinter-descriptor.yml @@ -7,6 +7,11 @@ file_extensions: - ".cs" install: apk: + - icu-libs + - libcurl + - libintl + - libssl1.1 + - libstdc++ - lttng-ust-dev - zlib - zlib-dev @@ -22,6 +27,7 @@ linters: linter_name: dotnet-format is_formatter: true linter_url: https://github.com/dotnet/format + linter_repo: https://github.com/dotnet/format linter_image_url: https://user-images.githubusercontent.com/9797472/61659851-6bbdc880-ac7d-11e9-95f7-d30c7de1a18a.png cli_lint_extra_args: - "--folder" diff --git a/megalinter/descriptors/css.megalinter-descriptor.yml b/megalinter/descriptors/css.megalinter-descriptor.yml index e3b0d694a00..d131b95ed7e 100644 --- a/megalinter/descriptors/css.megalinter-descriptor.yml +++ b/megalinter/descriptors/css.megalinter-descriptor.yml @@ -56,6 +56,7 @@ linters: - ".scss" - ".saas" linter_url: https://github.com/sds/scss-lint + linter_repo: https://github.com/sds/scss-lint linter_banner_image_url: https://raw.githubusercontent.com/sds/scss-lint/master/logo/horizontal.png linter_rules_configuration_url: https://github.com/sds/scss-lint#configuration linter_rules_inline_disable_url: https://stylelint.io/user-guide/ignore-code diff --git a/megalinter/descriptors/dart.megalinter-descriptor.yml b/megalinter/descriptors/dart.megalinter-descriptor.yml index 157ed078f12..60996125938 100644 --- a/megalinter/descriptors/dart.megalinter-descriptor.yml +++ b/megalinter/descriptors/dart.megalinter-descriptor.yml @@ -1,7 +1,5 @@ descriptor_id: DART descriptor_type: language -descriptor_flavors: - - dart file_extensions: - ".dart" linters: @@ -29,7 +27,7 @@ linters: - ARG DART_VERSION='2.8.4' - ARG GLIBC_VERSION='2.31-r0' - | - RUN wget --tries=5 -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \ + RUN wget --tries=50 -q -O /etc/apk/keys/sgerrand.rsa.pub https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub \ && wget --tries=5 -q https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${GLIBC_VERSION}/glibc-${GLIBC_VERSION}.apk \ && apk add --no-cache glibc-${GLIBC_VERSION}.apk && rm glibc-${GLIBC_VERSION}.apk \ && wget --tries=5 https://storage.googleapis.com/dart-archive/channels/stable/release/${DART_VERSION}/sdk/dartsdk-linux-x64-release.zip -O - -q | unzip -q - \ diff --git a/megalinter/descriptors/dockerfile.megalinter-descriptor.yml b/megalinter/descriptors/dockerfile.megalinter-descriptor.yml index 1f308ededef..fef28037ea3 100644 --- a/megalinter/descriptors/dockerfile.megalinter-descriptor.yml +++ b/megalinter/descriptors/dockerfile.megalinter-descriptor.yml @@ -7,23 +7,16 @@ file_names_regex: - "Dockerfile" test_folder: docker linters: - # dockerfilelint - - linter_name: dockerfilelint - name: DOCKERFILE_DOCKERFILELINT - linter_url: https://github.com/replicatedhq/dockerfilelint - linter_rules_url: https://github.com/replicatedhq/dockerfilelint#checks-performed - linter_rules_configuration_url: https://github.com/replicatedhq/dockerfilelint#configuring - config_file_name: .dockerfilelintrc - cli_config_arg_name: "" - examples: - - "dockerfilelint Dockerfile" - install: - npm: - - dockerfilelint # Hadolint - linter_name: hadolint name: DOCKERFILE_HADOLINT + can_output_sarif: true + descriptor_flavors: + - all_flavors # Applicable to CI in any language project + - ci_light + - security linter_url: https://github.com/hadolint/hadolint + linter_repo: https://github.com/hadolint/hadolint linter_rules_url: https://github.com/hadolint/hadolint#rules linter_image_url: https://hadolint.github.io/hadolint/img/cat_container.png linter_rules_configuration_url: https://github.com/hadolint/hadolint#configure @@ -31,6 +24,9 @@ linters: linter_megalinter_ref_url: https://github.com/hadolint/hadolint/blob/master/docs/INTEGRATION.md#mega-linter cli_config_arg_name: "--config" config_file_name: .hadolint.yaml + cli_sarif_args: + - --format + - sarif examples: - "hadolint Dockerfile" - "hadolint --config .hadolint.yml Dockerfile" diff --git a/megalinter/descriptors/gherkin.megalinter-descriptor.yml b/megalinter/descriptors/gherkin.megalinter-descriptor.yml index d543f4f63a9..ba3e8c17d05 100644 --- a/megalinter/descriptors/gherkin.megalinter-descriptor.yml +++ b/megalinter/descriptors/gherkin.megalinter-descriptor.yml @@ -8,6 +8,7 @@ linters: # GHERKIN-LINT - linter_name: gherkin-lint linter_url: https://github.com/vsiakka/gherkin-lint + linter_repo: https://github.com/vsiakka/gherkin-lint linter_rules_url: https://github.com/vsiakka/gherkin-lint#available-rules linter_rules_configuration_url: https://github.com/vsiakka/gherkin-lint#rule-configuration config_file_name: ".gherkin-lintrc" diff --git a/megalinter/descriptors/git.megalinter-descriptor.yml b/megalinter/descriptors/git.megalinter-descriptor.yml deleted file mode 100644 index e612bd35b0f..00000000000 --- a/megalinter/descriptors/git.megalinter-descriptor.yml +++ /dev/null @@ -1,26 +0,0 @@ -descriptor_id: GIT -descriptor_type: other -descriptor_flavors: - - all_flavors # Applicable to CI in any language project - - ci_light -install: - dockerfile: - - RUN git config --global core.autocrlf true -linters: - # GIT_DIFF - - linter_name: git_diff - lint_all_files: true - test_folder: git_diff - linter_text: Git diff checks for git conflicts markers in files - linter_url: https://git-scm.com - linter_repo: https://github.com/git/git - linter_megalinter_ref_url: never - cli_config_arg_name: "" - cli_executable: git - cli_lint_mode: project - cli_lint_extra_args: - - "diff" - - "--check" - cli_help_arg_name: "--help" - examples: - - "git diff --check" diff --git a/megalinter/descriptors/go.megalinter-descriptor.yml b/megalinter/descriptors/go.megalinter-descriptor.yml index 68ff1b68d04..f0409bffaf1 100644 --- a/megalinter/descriptors/go.megalinter-descriptor.yml +++ b/megalinter/descriptors/go.megalinter-descriptor.yml @@ -53,6 +53,7 @@ linters: url: https://marketplace.visualstudio.com/items?itemName=ms-vscode.Go # REVIVE - linter_name: revive + can_output_sarif: true linter_url: https://revive.run/ linter_repo: https://github.com/mgechev/revive linter_rules_url: https://revive.run/r @@ -62,6 +63,9 @@ linters: cli_config_arg_name: "-config" cli_lint_extra_args: - -set_exit_status + cli_sarif_args: + - -formatter + - sarif cli_help_arg_name: "-help" help_command_return_code: 0 linter_version_cache: "0.0.0" diff --git a/megalinter/descriptors/graphql.megalinter-descriptor.yml b/megalinter/descriptors/graphql.megalinter-descriptor.yml index dcf6660f7ba..b4a772ea1a5 100644 --- a/megalinter/descriptors/graphql.megalinter-descriptor.yml +++ b/megalinter/descriptors/graphql.megalinter-descriptor.yml @@ -9,6 +9,7 @@ linters: - linter_name: graphql-schema-linter name: GRAPHQL_GRAPHQL_SCHEMA_LINTER linter_url: https://github.com/cjoudrey/graphql-schema-linter + linter_repo: https://github.com/cjoudrey/graphql-schema-linter linter_rules_url: https://github.com/cjoudrey/graphql-schema-linter#built-in-rules linter_rules_configuration_url: https://github.com/cjoudrey/graphql-schema-linter#configuration-file linter_rules_inline_disable_url: https://github.com/cjoudrey/graphql-schema-linter#inline-rule-overrides diff --git a/megalinter/descriptors/groovy.megalinter-descriptor.yml b/megalinter/descriptors/groovy.megalinter-descriptor.yml index 3ec856c2fe7..860c107a372 100644 --- a/megalinter/descriptors/groovy.megalinter-descriptor.yml +++ b/megalinter/descriptors/groovy.megalinter-descriptor.yml @@ -14,6 +14,7 @@ linters: # npm-groovy-lint - class: GroovyNpmGroovyLintLinter linter_name: npm-groovy-lint + can_output_sarif: true linter_url: https://nvuillam.github.io/npm-groovy-lint/ linter_repo: https://github.com/nvuillam/npm-groovy-lint linter_rules_url: https://codenarc.org/codenarc-rule-index.html @@ -25,6 +26,9 @@ linters: cli_lint_extra_args: - "--failon" - "info" + cli_sarif_args: + - --output + - sarif cli_lint_fix_arg_name: "--fix" version_extract_regex: "(?<=npm-groovy-lint version )\\d+(\\.\\d+)+" examples: @@ -32,6 +36,8 @@ linters: - "npm-groovy-lint --path . --files myfile.groovy -c .groovylintrc.json" - "npm-groovy-lint --path . --files myfile.groovy -c .groovylintrc.json --fix" install: + apk: + - openjdk11 npm: - npm-groovy-lint ide: diff --git a/megalinter/descriptors/java.megalinter-descriptor.yml b/megalinter/descriptors/java.megalinter-descriptor.yml index 8dd71ac1857..af5a06351f6 100644 --- a/megalinter/descriptors/java.megalinter-descriptor.yml +++ b/megalinter/descriptors/java.megalinter-descriptor.yml @@ -13,8 +13,10 @@ install: linters: # Java Checkstyle - linter_name: checkstyle + can_output_sarif: true linter_url: https://checkstyle.sourceforge.io linter_repo: https://github.com/checkstyle/checkstyle + linter_spdx_license: LGPL-2.1 linter_rules_url: https://checkstyle.sourceforge.io/checks.html linter_banner_image_url: https://checkstyle.sourceforge.io/images/header-checkstyle-logo.png linter_rules_configuration_url: https://checkstyle.sourceforge.io/config.html#Overview @@ -25,6 +27,11 @@ linters: cli_lint_extra_args: - "-jar" - "/usr/bin/checkstyle" + cli_sarif_args: + - -f + - sarif + - -o + - "{{SARIF_OUTPUT_FILE}}" cli_lint_errors_regex: "Checkstyle ends with ([0-9]+) errors" cli_version_extra_args: - "-jar" diff --git a/megalinter/descriptors/javascript.megalinter-descriptor.yml b/megalinter/descriptors/javascript.megalinter-descriptor.yml index a5e25888ee7..00eb3b1757d 100644 --- a/megalinter/descriptors/javascript.megalinter-descriptor.yml +++ b/megalinter/descriptors/javascript.megalinter-descriptor.yml @@ -8,6 +8,7 @@ linters: # ESLINT - linter_name: eslint name: JAVASCRIPT_ES + can_output_sarif: true file_extensions: - ".js" - ".vue" @@ -36,6 +37,11 @@ linters: cli_lint_extra_args: - "--no-ignore" cli_lint_fix_arg_name: "--fix" + cli_sarif_args: + - --format + - "@microsoft/eslint-formatter-sarif" + - -o + - "{{SARIF_OUTPUT_FILE}}" cli_lint_errors_count: regex_sum cli_lint_errors_regex: "✖ ([0-9]+) problem" examples: @@ -57,6 +63,7 @@ linters: - babel-eslint - "@babel/core" - "@babel/eslint-parser" + - "@microsoft/eslint-formatter-sarif" ide: atom: - name: linter-eslint diff --git a/megalinter/descriptors/json.megalinter-descriptor.yml b/megalinter/descriptors/json.megalinter-descriptor.yml index c9e01b4fd31..2180504f3f1 100644 --- a/megalinter/descriptors/json.megalinter-descriptor.yml +++ b/megalinter/descriptors/json.megalinter-descriptor.yml @@ -9,6 +9,7 @@ linters: # JSONLINT - linter_name: jsonlint linter_url: https://github.com/zaach/jsonlint + linter_repo: https://github.com/zaach/jsonlint linter_megalinter_ref_url: https://github.com/zaach/jsonlint/pull/127 version_command_return_code: 1 examples: @@ -18,6 +19,7 @@ linters: - jsonlint # ESLINT-PLUGIN-JSONC - linter_name: eslint-plugin-jsonc + can_output_sarif: true file_extensions: - ".json" - ".json5" @@ -94,11 +96,16 @@ linters: cli_lint_extra_args: - "--no-ignore" cli_lint_fix_arg_name: "--fix" + cli_sarif_args: + - --format + - "@microsoft/eslint-formatter-sarif" + - -o + - "{{SARIF_OUTPUT_FILE}}" cli_lint_errors_count: regex_sum cli_lint_errors_regex: "✖ ([0-9]+) problem" cli_executable_version: "npm" cli_version_arg_name: "" - cli_version_extra_args: ["list", "eslint-plugin-jsonc"] + cli_version_extra_args: ["list", "eslint-plugin-jsonc", "--prefix", "/node-deps"] examples: - "eslint myfile.json" - "eslint -c .eslintrc-json.json --no-eslintrc --no-ignore myfile.json" @@ -109,6 +116,7 @@ linters: npm: - eslint - eslint-plugin-jsonc + - "@microsoft/eslint-formatter-sarif" ide: vscode: - name: vscode-eslint @@ -116,9 +124,11 @@ linters: # V8R - linter_name: v8r linter_url: https://github.com/chris48s/v8r + linter_repo: https://github.com/chris48s/v8r linter_text: v8r checks the validity of JSON/YAML files if they have a matching schema defined on [schemastore.org](https://www.schemastore.org/json/) linter_rules_url: https://www.schemastore.org/json/ linter_megalinter_ref_url: "no" + cli_lint_mode: list_of_files cli_lint_extra_args: - "--ignore-errors" cli_help_arg_name: "--help" @@ -128,7 +138,7 @@ linters: downgraded_version: true install: npm: - - v8r@0.6.1 + - v8r ide: eclipse: - name: native support diff --git a/megalinter/descriptors/jsx.megalinter-descriptor.yml b/megalinter/descriptors/jsx.megalinter-descriptor.yml index 73c0cc8d16e..8213069ea6f 100644 --- a/megalinter/descriptors/jsx.megalinter-descriptor.yml +++ b/megalinter/descriptors/jsx.megalinter-descriptor.yml @@ -7,6 +7,7 @@ file_extensions: linters: # ESLINT - linter_name: eslint + can_output_sarif: true linter_text: | eslint requires a custom configuration file applicable to your project. You can create it by typing `npx eslint --init` in the root of your repository @@ -30,6 +31,11 @@ linters: cli_lint_extra_args: - "--no-ignore" cli_lint_fix_arg_name: "--fix" + cli_sarif_args: + - --format + - "@microsoft/eslint-formatter-sarif" + - -o + - "{{SARIF_OUTPUT_FILE}}" cli_lint_errors_count: regex_sum cli_lint_errors_regex: "✖ ([0-9]+) problem" examples: @@ -41,6 +47,7 @@ linters: - eslint - eslint-plugin-react - eslint-plugin-jsx-a11y + - "@microsoft/eslint-formatter-sarif" ide: atom: - name: linter-eslint diff --git a/megalinter/descriptors/kotlin.megalinter-descriptor.yml b/megalinter/descriptors/kotlin.megalinter-descriptor.yml index fd1dff29915..ee46aa6823e 100644 --- a/megalinter/descriptors/kotlin.megalinter-descriptor.yml +++ b/megalinter/descriptors/kotlin.megalinter-descriptor.yml @@ -5,15 +5,21 @@ descriptor_flavors: file_extensions: - ".kt" - ".kts" +install: + apk: + - openjdk11 linters: # KTLINT - linter_name: ktlint + can_output_sarif: true linter_url: https://ktlint.github.io linter_repo: https://github.com/pinterest/ktlint linter_rules_url: https://ktlint.github.io/#rules linter_banner_image_url: https://miro.medium.com/max/655/1*sLboL6JnC9yUodFsdSMB-w.png linter_megalinter_ref_url: https://github.com/pinterest/ktlint#-with-continuous-integration cli_lint_fix_arg_name: "--format" + cli_sarif_args: + - --reporter=sarif,output={{SARIF_OUTPUT_FILE}} examples: - "ktlint myfile.kt" - "ktlint --format myfile.kt" diff --git a/megalinter/descriptors/kubernetes.megalinter-descriptor.yml b/megalinter/descriptors/kubernetes.megalinter-descriptor.yml index a3e2924ee80..db11a821146 100644 --- a/megalinter/descriptors/kubernetes.megalinter-descriptor.yml +++ b/megalinter/descriptors/kubernetes.megalinter-descriptor.yml @@ -2,6 +2,7 @@ descriptor_id: KUBERNETES descriptor_type: tooling_format descriptor_flavors: - all_flavors # Applicable to CI in any language project + - security files_sub_directory: kubernetes file_extensions: - ".yml" @@ -17,6 +18,7 @@ linters: name: KUBERNETES_KUBEVAL linter_url: https://www.kubeval.com/ linter_repo: https://github.com/instrumenta/kubeval + linter_spdx_license: Apache-2.0 cli_config_extra_args: - "--strict" version_extract_regex: "((\\d+(\\.\\d+)+)|(dev))" diff --git a/megalinter/descriptors/lua.megalinter-descriptor.yml b/megalinter/descriptors/lua.megalinter-descriptor.yml index 07267c04121..0499a561eea 100644 --- a/megalinter/descriptors/lua.megalinter-descriptor.yml +++ b/megalinter/descriptors/lua.megalinter-descriptor.yml @@ -17,6 +17,9 @@ linters: - "luacheck myfile.lua" - "luacheck --config .chktexrc myfile.lua" install: + apk: + - openssl + - readline-dev dockerfile: - | RUN wget --tries=5 https://www.lua.org/ftp/lua-5.3.5.tar.gz -O - -q | tar -xzf - \ diff --git a/megalinter/descriptors/markdown.megalinter-descriptor.yml b/megalinter/descriptors/markdown.megalinter-descriptor.yml index f2e56a9c32d..16a04619ca4 100644 --- a/megalinter/descriptors/markdown.megalinter-descriptor.yml +++ b/megalinter/descriptors/markdown.megalinter-descriptor.yml @@ -14,6 +14,7 @@ linters: expected_value: markdownlint default_value: markdownlint linter_url: https://github.com/DavidAnson/markdownlint + linter_repo: https://github.com/DavidAnson/markdownlint linter_rules_url: https://github.com/DavidAnson/markdownlint#rules--aliases linter_image_url: https://davidanson.gallerycdn.vsassets.io/extensions/davidanson/vscode-markdownlint/0.37.1/1601748708034/Microsoft.VisualStudio.Services.Icons.Default linter_rules_configuration_url: https://github.com/igorshubovych/markdownlint-cli#configuration @@ -44,6 +45,7 @@ linters: url: https://marketplace.visualstudio.com/items/DavidAnson.vscode-markdownlint # remark-lint - linter_name: remark-lint + disabled: true is_formatter: true activation_rules: - type: variable @@ -89,6 +91,7 @@ linters: # Markdown Link Check - linter_name: markdown-link-check linter_url: https://github.com/tcort/markdown-link-check + linter_repo: https://github.com/tcort/markdown-link-check linter_rules_configuration_url: https://github.com/tcort/markdown-link-check#config-file-format linter_rules_inline_disable_url: https://github.com/tcort/markdown-link-check#disable-comments linter_megalinter_ref_url: https://github.com/tcort/markdown-link-check#run-in-other-tools diff --git a/megalinter/descriptors/php.megalinter-descriptor.yml b/megalinter/descriptors/php.megalinter-descriptor.yml index 9d12f4f60c2..33078366624 100644 --- a/megalinter/descriptors/php.megalinter-descriptor.yml +++ b/megalinter/descriptors/php.megalinter-descriptor.yml @@ -6,6 +6,7 @@ file_extensions: - ".php" install: apk: + - gnupg - php7 - php7-phar - php7-json @@ -43,21 +44,11 @@ install: && update-alternatives --install /usr/bin/php php /usr/bin/php7 100 \ && update-alternatives --install /usr/bin/php php /usr/bin/php8 10 linters: - # PHP Built in Linter - - linter_name: php - linter_url: https://www.php.net - linter_repo: https://github.com/php/php-src - linter_banner_image_url: https://www.php.net/images/logos/new-php-logo.svg - linter_megalinter_ref_url: never - name: PHP_BUILTIN - cli_lint_extra_args: - - "-l" - examples: - - "php -l myfile.js" # PHPCS - linter_name: phpcs name: PHP_PHPCS linter_url: https://github.com/squizlabs/PHP_CodeSniffer + linter_repo: https://github.com/squizlabs/PHP_CodeSniffer linter_rules_configuration_url: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#using-a-default-configuration-file linter_rules_inline_disable_url: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#ignoring-parts-of-a-file config_file_name: phpcs.xml @@ -125,6 +116,7 @@ linters: # PSALM - linter_name: psalm name: PHP_PSALM + can_output_sarif: true linter_url: https://psalm.dev linter_repo: https://github.com/vimeo/psalm linter_rules_url: https://psalm.dev/docs/running_psalm/issues/ @@ -134,6 +126,8 @@ linters: config_file_name: psalm.xml cli_lint_mode: list_of_files cli_config_arg_name: "--config=" + cli_sarif_args: + - "--report={{SARIF_OUTPUT_FILE}}" version_extract_regex: "((\\d+(\\.\\d+)+)|Psalm (.*)@)" cli_lint_errors_count: regex_number cli_lint_errors_regex: "([0-9]+) error" @@ -166,6 +160,9 @@ linters: install: dockerfile: - | - RUN composer global require overtrue/phplint ^3.0 \ + RUN composer global require --ignore-platform-reqs overtrue/phplint ^3.0 \ && composer global config bin-dir --absolute - - ENV PATH="/root/.composer/vendor/bin:$PATH" + - | + RUN wget --tries=5 -q -O phplint.phar https://github.com/overtrue/phplint/releases/download/3.1.1/phplint.phar \ + && chmod +x phplint.phar \ + && mv phplint.phar /usr/local/bin/phplint diff --git a/megalinter/descriptors/powershell.megalinter-descriptor.yml b/megalinter/descriptors/powershell.megalinter-descriptor.yml index 8227d4ded46..e2b82ba023a 100644 --- a/megalinter/descriptors/powershell.megalinter-descriptor.yml +++ b/megalinter/descriptors/powershell.megalinter-descriptor.yml @@ -14,6 +14,8 @@ file_extensions: # Slightly modified to always retrieve latest stable Powershell version # If changing PWSH_VERSION='latest' to a specific version, use format PWSH_VERSION='tags/v7.0.2' install: + apk: + - icu-libs dockerfile: - ARG PWSH_VERSION='latest' - ARG PWSH_DIRECTORY='/opt/microsoft/powershell' @@ -31,6 +33,7 @@ linters: - class: PowershellLinter linter_name: powershell linter_url: https://github.com/PowerShell/PSScriptAnalyzer + linter_repo: https://github.com/PowerShell/PSScriptAnalyzer linter_image_url: https://github.com/PowerShell/PSScriptAnalyzer/raw/master/logo.png linter_rules_configuration_url: https://github.com/PowerShell/PSScriptAnalyzer#explicit linter_rules_inline_disable_url: https://github.com/PowerShell/PSScriptAnalyzer#suppressing-rules diff --git a/megalinter/descriptors/protobuf.megalinter-descriptor.yml b/megalinter/descriptors/protobuf.megalinter-descriptor.yml index 29e850cdfee..4598f19d778 100644 --- a/megalinter/descriptors/protobuf.megalinter-descriptor.yml +++ b/megalinter/descriptors/protobuf.megalinter-descriptor.yml @@ -8,6 +8,7 @@ linters: # Protolint - linter_name: protolint linter_url: https://github.com/yoheimuta/protolint + linter_repo: https://github.com/yoheimuta/protolint linter_rules_url: https://github.com/yoheimuta/protolint#rules linter_rules_configuration_url: https://github.com/yoheimuta/protolint#rules config_file_name: .protolintrc.yml diff --git a/megalinter/descriptors/python.megalinter-descriptor.yml b/megalinter/descriptors/python.megalinter-descriptor.yml index e43427de2b9..7683057ca50 100644 --- a/megalinter/descriptors/python.megalinter-descriptor.yml +++ b/megalinter/descriptors/python.megalinter-descriptor.yml @@ -16,7 +16,7 @@ linters: linter_rules_configuration_url: https://github.com/PyCQA/pylint/blob/master/pylintrc linter_rules_inline_disable_url: https://pylint.readthedocs.io/en/latest/user_guide/message-control.html cli_lint_mode: list_of_files - config_file_name: .python-lint + config_file_name: .pylintrc cli_config_arg_name: "--rcfile" cli_lint_errors_count: regex_count cli_lint_errors_regex: ":([0-9]+):([0-9]+):" @@ -170,6 +170,10 @@ linters: # BANDIT - linter_name: bandit name: PYTHON_BANDIT + can_output_sarif: true + descriptor_flavors: + - python + - security linter_text: | bandit checks for security risks @@ -183,6 +187,11 @@ linters: linter_rules_inline_disable_url: https://bandit.readthedocs.io/en/latest/config.html#suppressing-individual-lines cli_lint_mode: list_of_files config_file_name: ".bandit.yml" + cli_sarif_args: + - --format + - sarif + - --output + - "{{SARIF_OUTPUT_FILE}}" cli_lint_errors_count: regex_count cli_lint_errors_regex: ">> Issue: \\[" version_extract_regex: "(?<=bandit )\\d+(\\.\\d+)+" @@ -193,6 +202,7 @@ linters: install: pip: - bandit + - bandit_sarif_formatter ide: atom: - name: bandit-lint @@ -212,6 +222,7 @@ linters: If you don't use python static typing, you should disable this linter by adding `- PYTHON_BANDIT` in `DISABLE_LINTERS` variable in your `.mega-linter.yml` config file linter_url: https://mypy.readthedocs.io/en/stable/ linter_repo: https://github.com/python/mypy + linter_spdx_license: MIT linter_banner_image_url: http://mypy-lang.org/static/mypy_light.svg linter_rules_configuration_url: https://mypy.readthedocs.io/en/stable/config_file.html linter_rules_inline_disable_url: https://mypy.readthedocs.io/en/stable/inline_config.html#inline-config diff --git a/megalinter/descriptors/r.megalinter-descriptor.yml b/megalinter/descriptors/r.megalinter-descriptor.yml index 5c1ac92ec8e..f3bfabbcfe4 100644 --- a/megalinter/descriptors/r.megalinter-descriptor.yml +++ b/megalinter/descriptors/r.megalinter-descriptor.yml @@ -18,13 +18,24 @@ linters: - 'R --slave -e "errors <- lintr::lint(''myfile.r''); print(errors); quit(save = ''no'', status = if (length(errors) > 0) 1 else 0) "' install: apk: + - gcc + - g++ + - libc-dev + - libcurl + - libffi-dev + - libgcc + - libxml2-dev + - libxml2-utils + - linux-headers - R - R-dev - R-doc dockerfile: - - FROM ghcr.io/assignuser/lintr-lib:0.2.0 as lintr-lib - - COPY --from=lintr-lib /usr/lib/R/library/ /home/r-library - - RUN R -e "install.packages(list.dirs('/home/r-library',recursive = FALSE), repos = NULL, type = 'source')" + - | + RUN mkdir -p /home/r-library \ + && cp -r /usr/lib/R/library/ /home/r-library/ \ + && Rscript -e "install.packages(c('lintr','purrr'), repos = 'https://cloud.r-project.org/')" \ + && R -e "install.packages(list.dirs('/home/r-library',recursive = FALSE), repos = NULL, type = 'source')" ide: atom: - name: Atom lintr diff --git a/megalinter/descriptors/raku.megalinter-descriptor.yml b/megalinter/descriptors/raku.megalinter-descriptor.yml index be8d8182c94..03a46697374 100644 --- a/megalinter/descriptors/raku.megalinter-descriptor.yml +++ b/megalinter/descriptors/raku.megalinter-descriptor.yml @@ -28,7 +28,7 @@ linters: && apk add --no-cache --allow-untrusted rakudo-pkg-Alpine3.12_2020.10-02_x86_64.apk \ && rm rakudo-pkg-Alpine3.12_2020.10-02_x86_64.apk \ && /opt/rakudo-pkg/bin/add-rakudo-to-path \ - && source /root/.profile \ + # && source /root/.profile \ && /opt/rakudo-pkg/bin/install-zef-as-user - ENV PATH="~/.raku/bin:/opt/rakudo-pkg/bin:/opt/rakudo-pkg/share/perl6/site/bin:$PATH" ide: diff --git a/megalinter/descriptors/repository.megalinter-descriptor.yml b/megalinter/descriptors/repository.megalinter-descriptor.yml new file mode 100644 index 00000000000..6f821ca72ec --- /dev/null +++ b/megalinter/descriptors/repository.megalinter-descriptor.yml @@ -0,0 +1,320 @@ +descriptor_id: REPOSITORY +descriptor_type: other +descriptor_flavors: + - all_flavors # Applicable to CI in any language project + - ci_light +lint_all_files: true +linters: + # DEVSKIM + - linter_name: devskim + can_output_sarif: true + descriptor_flavors: + - all + - security + linter_url: https://github.com/microsoft/DevSkim + linter_repo: https://github.com/microsoft/DevSkim + linter_image_url: https://github.com/microsoft/DevSkim/raw/main/media/devskim_logo.svg + cli_lint_mode: project + cli_lint_extra_args: + - analyze + cli_sarif_args: + - --file-format + - sarif + cli_lint_extra_args_after: + - "." + - -E + cli_lint_errors_count: regex_count + cli_lint_errors_regex: "(\\[.*\\])" + test_folder: devskim + examples: + - "devskim analyze ." + - "devskim analyze --file-format sarif ." + install: + apk: + - icu-libs + - libcurl + - libintl + - libssl1.1 + - libstdc++ + - lttng-ust-dev + - zlib + - zlib-dev + dockerfile: + - | + RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest + - ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" + - RUN dotnet tool install --global Microsoft.CST.DevSkim.CLI + ide: + vscode: + - name: VsCode DevSkim + url: https://marketplace.visualstudio.com/items?itemName=MS-CST-E.vscode-devskim + + # DUSTILOCK + - class: DustilockLinter + linter_name: dustilock + can_output_sarif: true + descriptor_flavors: + - all + - security + linter_url: https://github.com/Checkmarx/dustilock + linter_repo: https://github.com/Checkmarx/dustilock + linter_banner_image_url: https://user-images.githubusercontent.com/1287098/142776854-83abf265-a1ba-485f-a8b6-995da7f7ef8b.png + cli_lint_mode: project + cli_lint_extra_args: + - --recursive + cli_lint_errors_count: regex_count + cli_lint_errors_regex: "(error )" + linter_version_cache: "0.0.0" + test_folder: dustilock + examples: + - "dustilock" + install: + apk: + - go + dockerfile: + - | + RUN ML_THIRD_PARTY_DIR=/download/dustilock && \ + mkdir -p ${ML_THIRD_PARTY_DIR} && \ + git clone https://github.com/Checkmarx/dustilock.git ${ML_THIRD_PARTY_DIR} && \ + cd ${ML_THIRD_PARTY_DIR} && \ + go build && \ + chmod +x dustilock && \ + mv "${ML_THIRD_PARTY_DIR}/dustilock" /usr/bin/ && \ + find ${ML_THIRD_PARTY_DIR} -type f -not -name 'LICENSE*' -delete -o -type d -empty -delete + + # GIT_DIFF + - linter_name: git_diff + lint_all_files: true + test_folder: git_diff + linter_text: Git diff checks for git conflicts markers in files + linter_url: https://git-scm.com + linter_repo: https://github.com/git/git + linter_spdx_license: LGPL-2.1 + linter_megalinter_ref_url: never + cli_config_arg_name: "" + cli_executable: git + cli_lint_mode: project + cli_lint_extra_args: + - "diff" + - "--check" + cli_help_arg_name: "--help" + examples: + - "git diff --check" + + # GITLEAKS + - class: GitleaksLinter + linter_name: gitleaks + can_output_sarif: true + descriptor_flavors: + - all_flavors # Applicable to CI in any language project + - ci_light + - security + linter_url: https://github.com/zricethezav/gitleaks + linter_repo: https://github.com/zricethezav/gitleaks + linter_rules_configuration_url: https://github.com/zricethezav/gitleaks#configuration + config_file_name: .gitleaks.toml + cli_config_arg_name: "-c" + cli_lint_mode: project + cli_lint_extra_args: + - detect + - --no-git + cli_sarif_args: + - --report-format + - sarif + - --report-path + - "{{SARIF_OUTPUT_FILE}}" + cli_lint_extra_args_after: + - "--verbose" + - "--source" + - "." + cli_help_arg_name: help + cli_version_arg_name: version + cli_lint_errors_count: regex_sum + cli_lint_errors_regex: "leaks found: ([0-9]+)" + test_folder: gitleaks + examples: + - "gitleaks detect --no-git --verbose --source ." + - "gitleaks detect -c .gitleaks.toml --no-git --verbose --source ." + install: + dockerfile: + - FROM zricethezav/gitleaks:v8.8.7 as gitleaks + - COPY --from=gitleaks /usr/bin/gitleaks /usr/bin/ + + # GOODCHECK + - linter_name: goodcheck + descriptor_flavors: + - all_flavors # Applicable to CI in any language project + - ci_light + linter_url: https://sider.github.io/goodcheck/ + linter_repo: https://github.com/sider/goodcheck + linter_rules_url: https://sider.github.io/goodcheck/docs/rules + linter_rules_configuration_url: https://sider.github.io/goodcheck/docs/configuration + active_only_if_file_found: + - goodcheck.yml + config_file_name: goodcheck.yml + cli_config_arg_name: "-c" + cli_lint_mode: project + cli_lint_extra_args: + - check + cli_help_arg_name: "help" + test_folder: repository_goodcheck + examples: + - "goodcheck check" + - "goodcheck check -c goodcheck.yml" + install: + gem: + - goodcheck + + # SECRETLINT + - class: SecretLintLinter + linter_name: secretlint + can_output_sarif: true + descriptor_flavors: + - all_flavors # Applicable to CI in any language project + - ci_light + - security + linter_url: https://github.com/secretlint/secretlint + linter_repo: https://github.com/secretlint/secretlint + linter_banner_image_url: https://github.com/secretlint/secretlint/raw/main/docs/assets/SecretLintLP.png + linter_rules_url: https://github.com/secretlint/secretlint#rule-packages + linter_rules_configuration_url: https://github.com/secretlint/secretlint#configuration + linter_megalinter_ref_url: https://github.com/secretlint/secretlint#mega-linter + config_file_name: .secretlintrc.json + cli_config_arg_name: "--secretlintrc" + cli_lint_mode: project + cli_lint_extra_args_after: + - "**/*" + cli_sarif_args: + - --format + - "@secretlint/secretlint-formatter-sarif" + cli_help_arg_name: "--help" + test_folder: credentials + examples: + - 'secretlint "*/**"' + - 'secretlint --secretlintrc .secretlintrc.json "**/*"' + install: + npm: + - secretlint + - "@secretlint/secretlint-rule-preset-recommend" + - "@secretlint/secretlint-formatter-sarif" + + # SEMGREP + - class: SemgrepLinter + linter_name: semgrep + can_output_sarif: true + descriptor_flavors: + - all_flavors # Applicable to CI in any language project + - security + linter_url: https://semgrep.dev/ + linter_repo: https://github.com/returntocorp/semgrep + linter_text: | + If you do not want to use default semgrep recommended rules, you can send them as arguments + + Example: `REPOSITORY_SEMGREP_ARGUMENTS: ["--config","p/ruleset1","p/ruleset2"]` + linter_rules_url: https://semgrep.dev/r + linter_rules_configuration_url: https://semgrep.dev/docs/running-rules/ + linter_rules_inline_disable_url: https://semgrep.dev/docs/ignoring-findings/#inline-comments + linter_banner_image_url: https://raw.githubusercontent.com/returntocorp/semgrep/develop/semgrep.svg + cli_lint_mode: project + cli_config_arg_name: --config + cli_config_default_value: auto + cli_lint_extra_args: + - --error # Exit 1 when errors are found + cli_lint_extra_args_after: + - "{{WORKSPACE}}" + # cli_lint_fix_arg_name: --autofix # Disable for now as some "fixes" are actually breaking ML code + cli_sarif_args: + - --sarif + cli_help_arg_name: -h + cli_help_extra_args: ["--help"] + cli_lint_errors_count: regex_number + cli_lint_errors_regex: "files: ([0-9]+) findings." + test_folder: repository_semgrep + examples: + - "semgrep /tmp/lint" + - "semgrep " + install: + pip: + - semgrep + variables: + - name: REPOSITORY_SEMGREP_RULESETS + description: List of semgrep rulesets identifiers that you want to enforce + default_value: auto + - name: REPOSITORY_SEMGREP_RULESETS_TYPE + description: "MegaLinter semgrep ruleset list preset id . Available values: security" + default_value: "" + ide: + vscode: + - name: VsCode SemGrep + url: https://marketplace.visualstudio.com/items?itemName=semgrep.semgrep + + # SYFT + - class: SyftLinter + linter_name: syft + can_output_sarif: true + descriptor_flavors: + - security + linter_url: https://github.com/anchore/syft + linter_repo: https://github.com/anchore/syft + linter_text: | + Builds a SBOM (Software Build Of Materials) from your repository + linter_banner_image_url: https://raw.githubusercontent.com/returntocorp/semgrep/develop/semgrep.svg + cli_lint_mode: project + config_file_name: .syft.yaml + cli_config_arg_name: --config + cli_lint_extra_args: + - packages + - . + cli_sarif_args: + - --output + - json + - --file + - "{{SARIF_OUTPUT_FILE}}.syft.json" + test_folder: repository_syft + examples: + - "syft /tmp/lint" + install: + dockerfile: + - RUN curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin + + # TRIVY + - linter_name: trivy + can_output_sarif: true + descriptor_flavors: + - all_flavors # Applicable to CI in any language project + - ci_light + - security + linter_url: https://aquasecurity.github.io/trivy/ + linter_repo: https://github.com/aquasecurity/trivy + linter_banner_image_url: https://aquasecurity.github.io/trivy/v0.21.1/imgs/logo.png + cli_lint_mode: project + cli_sarif_args: + - --format + - template + - --template + - "@/usr/local/bin/sarif.tpl" + - -o + - "{{SARIF_OUTPUT_FILE}}" + cli_lint_extra_args: + - fs + - --security-checks + - vuln,config + - --exit-code + - "1" + cli_lint_extra_args_after: + - "." + test_folder: trivy + examples: + - "trivy fs --security-checks vuln,config ." + install: + dockerfile: + - | + RUN wget --tries=5 -q -O - https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin v0.29.2 && \ + wget --tries=5 -q -O /usr/local/bin/sarif.tpl https://raw.githubusercontent.com/aquasecurity/trivy/714b5ca2460363e082d42a8d933c7a0cb7eff7a8/contrib/sarif.tpl && \ + chmod 644 /usr/local/bin/sarif.tpl + ide: + vscode: + - name: VsCode Trivy + url: https://marketplace.visualstudio.com/items?itemName=AquaSecurityOfficial.trivy-vulnerability-scanner diff --git a/megalinter/descriptors/rst.megalinter-descriptor.yml b/megalinter/descriptors/rst.megalinter-descriptor.yml index 1e1261a1d29..77ee4903c57 100644 --- a/megalinter/descriptors/rst.megalinter-descriptor.yml +++ b/megalinter/descriptors/rst.megalinter-descriptor.yml @@ -8,6 +8,7 @@ linters: # restructuredtext-lint - linter_name: rst-lint linter_url: https://github.com/twolfson/restructuredtext-lint + linter_repo: https://github.com/twolfson/restructuredtext-lint linter_megalinter_ref_url: https://github.com/twolfson/restructuredtext-lint/wiki/Integration-in-other-tools#integration-in-other-tools examples: - "rst-lint myfile.rst" @@ -17,6 +18,7 @@ linters: # rstcheck - linter_name: rstcheck linter_url: https://github.com/myint/rstcheck + linter_repo: https://github.com/myint/rstcheck config_file_name: ".rstcheck.cfg" linter_rules_configuration_url: https://github.com/myint/rstcheck#configuration-file linter_rules_inline_disable_url: https://github.com/myint/rstcheck#ignore-specific-errors @@ -32,23 +34,3 @@ linters: vscode: - name: vscode-restructuredtext url: https://marketplace.visualstudio.com/items/lextudio.restructuredtext - # rstfmt - - linter_name: rstfmt - disabled: true - is_formatter: true - linter_url: https://github.com/dzhu/rstfmt - linter_megalinter_ref_url: https://github.com/dzhu/rstfmt/pull/1 - cli_lint_extra_args: - - "--check" - cli_lint_fix_arg_name: "--megalinter-fix-flag" # Workaround for MegaLinter - cli_lint_fix_remove_args: - - "--check" - test_folder: rst_rstfmt - examples: - - "rstfmt --check myfile.rst" - - "rstfmt myfile.rst" # Format - install: - pip: - - "sphinx<4.0" # Necessary until https://github.com/dzhu/rstfmt/issues/12 is resolved - - rstfmt - version_extract_regex: "(?<=rstfmt )\\d+(\\.\\d+)+" diff --git a/megalinter/descriptors/ruby.megalinter-descriptor.yml b/megalinter/descriptors/ruby.megalinter-descriptor.yml index 4beec856c86..740854601bf 100644 --- a/megalinter/descriptors/ruby.megalinter-descriptor.yml +++ b/megalinter/descriptors/ruby.megalinter-descriptor.yml @@ -4,12 +4,6 @@ descriptor_flavors: - ruby file_extensions: - ".rb" -install: - apk: - - ruby - - ruby-dev - - ruby-bundler - - ruby-rdoc linters: # RUBOCOP - linter_name: rubocop diff --git a/megalinter/descriptors/rust.megalinter-descriptor.yml b/megalinter/descriptors/rust.megalinter-descriptor.yml index c74e7dea4d2..7dc8eeb671d 100644 --- a/megalinter/descriptors/rust.megalinter-descriptor.yml +++ b/megalinter/descriptors/rust.megalinter-descriptor.yml @@ -13,6 +13,7 @@ linters: - class: ClippyLinter linter_name: clippy linter_url: https://github.com/rust-lang/rust-clippy + linter_repo: https://github.com/rust-lang/rust-clippy linter_rules_url: https://rust-lang.github.io/rust-clippy/stable/index.html linter_rules_configuration_url: https://github.com/rust-lang/rust-clippy#configuration linter_rules_inline_disable_url: https://github.com/rust-lang/rust-clippy#allowingdenying-lints diff --git a/megalinter/descriptors/scala.megalinter-descriptor.yml b/megalinter/descriptors/scala.megalinter-descriptor.yml index 8910a50e9e7..ed936182103 100644 --- a/megalinter/descriptors/scala.megalinter-descriptor.yml +++ b/megalinter/descriptors/scala.megalinter-descriptor.yml @@ -1,10 +1,10 @@ descriptor_id: SCALA descriptor_type: language -descriptor_flavors: - - scala file_extensions: - ".scala" install: + apk: + - openjdk11 dockerfile: - | RUN curl -fLo coursier https://git.io/coursier-cli && \ @@ -18,7 +18,7 @@ linters: Scalafix lints and fixes scala files - As there is no prior compilation or semantic db generation, the linting is applied only with [built-in syntactic rules](https://scalacenter.github.io/scalafix/docs/rules/overview.html) - - scalafix arguments related to [semantic options](https://megalinter.github.io/descriptors/scala_scalafix/#help-content) can not be used + - scalafix arguments related to [semantic options](https://oxsecurity.github.io/megalinter/descriptors/scala_scalafix/#help-content) can not be used linter_rules_url: https://scalacenter.github.io/scalafix/docs/rules/overview.html linter_rules_configuration_url: https://scalacenter.github.io/scalafix/docs/users/configuration.html linter_rules_inline_disable_url: https://scalacenter.github.io/scalafix/docs/users/suppression.html diff --git a/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json b/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json index 744384bff97..2e99c84f291 100644 --- a/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json +++ b/megalinter/descriptors/schemas/megalinter-configuration.jsonschema.json @@ -49,7 +49,6 @@ "COFFEE", "COPYPASTE", "CPP", - "CREDENTIALS", "CSHARP", "CSS", "DART", @@ -57,7 +56,6 @@ "EDITORCONFIG", "ENV", "GHERKIN", - "GIT", "GO", "GRAPHQL", "GROOVY", @@ -80,6 +78,7 @@ "PYTHON", "R", "RAKU", + "REPOSITORY", "RST", "RUBY", "RUST", @@ -113,17 +112,14 @@ "COFFEE_COFFEELINT", "COPYPASTE_JSCPD", "CPP_CPPLINT", - "CREDENTIALS_SECRETLINT", "CSHARP_DOTNET_FORMAT", "CSS_STYLELINT", "CSS_SCSS_LINT", "DART_DARTANALYZER", - "DOCKERFILE_DOCKERFILELINT", "DOCKERFILE_HADOLINT", "EDITORCONFIG_EDITORCONFIG_CHECKER", "ENV_DOTENV_LINTER", "GHERKIN_GHERKIN_LINT", - "GIT_GIT_DIFF", "GO_GOLANGCI_LINT", "GO_REVIVE", "GRAPHQL_GRAPHQL_SCHEMA_LINTER", @@ -149,7 +145,6 @@ "MARKDOWN_MARKDOWN_TABLE_FORMATTER", "OPENAPI_SPECTRAL", "PERL_PERLCRITIC", - "PHP_BUILTIN", "PHP_PHPCS", "PHP_PHPSTAN", "PHP_PSALM", @@ -165,9 +160,17 @@ "PYTHON_MYPY", "R_LINTR", "RAKU_RAKU", + "REPOSITORY_DEVSKIM", + "REPOSITORY_DUSTILOCK", + "REPOSITORY_GIT_DIFF", + "REPOSITORY_GITLEAKS", + "REPOSITORY_GOODCHECK", + "REPOSITORY_SECRETLINT", + "REPOSITORY_SEMGREP", + "REPOSITORY_SYFT", + "REPOSITORY_TRIVY", "RST_RST_LINT", "RST_RSTCHECK", - "RST_RSTFMT", "RUBY_RUBOCOP", "RUST_CLIPPY", "SALESFORCE_SFDX_SCANNER_APEX", @@ -1123,7 +1126,7 @@ }, "CLOUDFORMATION_CFN_LINT_CLI_LINT_MODE": { "$id": "#/properties/CLOUDFORMATION_CFN_LINT_CLI_LINT_MODE", - "default": "file", + "default": "list_of_files", "enum": [ "file", "list_of_files", @@ -2416,6 +2419,21 @@ "title": "Disable errors", "type": "boolean" }, + "DISABLE_ERRORS_LINTERS": { + "$id": "#/properties/DISABLE_ERRORS_LINTERS", + "description": "If DISABLE_ERRORS_LINTERS is set, the listed linters will be run but errors will be not blocking", + "examples": [ + [ + "BASH_BASH_SHFMT", + "JAVASCRIPT_STANDARD" + ] + ], + "items": { + "$ref": "#/definitions/enum_linter_keys" + }, + "title": "Disabled errors linter keys", + "type": "array" + }, "DISABLE_LINTERS": { "$id": "#/properties/DISABLE_LINTERS", "description": "If DISABLE_LINTERS is set, the listed linters will be skipped", @@ -5009,7 +5027,7 @@ }, "JSON_V8R_CLI_LINT_MODE": { "$id": "#/properties/JSON_V8R_CLI_LINT_MODE", - "default": "file", + "default": "list_of_files", "enum": [ "file", "list_of_files", @@ -8484,7 +8502,7 @@ }, "PYTHON_PYLINT_CONFIG_FILE": { "$id": "#/properties/PYTHON_PYLINT_CONFIG_FILE", - "default": ".python-lint", + "default": ".pylintrc", "description": "PYTHON_PYLINT: User custom config file name if different from default", "title": "PYTHON_PYLINT: Custom config file name", "type": "string" @@ -8726,19 +8744,9 @@ "title": "Output folder", "type": "string" }, - "RST_FILTER_REGEX_EXCLUDE": { - "$id": "#/properties/RST_FILTER_REGEX_EXCLUDE", - "title": "Excluding regex filter for RST descriptor", - "type": "string" - }, - "RST_FILTER_REGEX_INCLUDE": { - "$id": "#/properties/RST_FILTER_REGEX_INCLUDE", - "title": "Including regex filter for RST descriptor", - "type": "string" - }, - "RST_RSTCHECK_ARGUMENTS": { - "$id": "#/properties/RST_RSTCHECK_ARGUMENTS", - "description": "RST_RSTCHECK: User custom arguments to add in linter CLI call", + "REPOSITORY_DEVSKIM_ARGUMENTS": { + "$id": "#/properties/REPOSITORY_DEVSKIM_ARGUMENTS", + "description": "REPOSITORY_DEVSKIM: User custom arguments to add in linter CLI call", "examples:": [ "--foo", "bar" @@ -8746,44 +8754,26 @@ "items": { "type": "string" }, - "title": "RST_RSTCHECK: Custom arguments", + "title": "REPOSITORY_DEVSKIM: Custom arguments", "type": [ "array", "string" ] }, - "RST_RSTCHECK_CLI_LINT_MODE": { - "$id": "#/properties/RST_RSTCHECK_CLI_LINT_MODE", - "default": "file", - "enum": [ - "file", - "list_of_files", - "project" - ], - "title": "RST_RSTCHECK: Override default cli lint mode", - "type": "string" - }, - "RST_RSTCHECK_CONFIG_FILE": { - "$id": "#/properties/RST_RSTCHECK_CONFIG_FILE", - "default": ".rstcheck.cfg", - "description": "RST_RSTCHECK: User custom config file name if different from default", - "title": "RST_RSTCHECK: Custom config file name", - "type": "string" - }, - "RST_RSTCHECK_DISABLE_ERRORS": { - "$id": "#/properties/RST_RSTCHECK_DISABLE_ERRORS", + "REPOSITORY_DEVSKIM_DISABLE_ERRORS": { + "$id": "#/properties/REPOSITORY_DEVSKIM_DISABLE_ERRORS", "default": false, - "title": "RST_RSTCHECK: Linter does not make MegaLinter fail even if errors are found", + "title": "REPOSITORY_DEVSKIM: Linter does not make MegaLinter fail even if errors are found", "type": "boolean" }, - "RST_RSTCHECK_DISABLE_ERRORS_IF_LESS_THAN": { - "$id": "#/properties/RST_RSTCHECK_DISABLE_ERRORS_IF_LESS_THAN", + "REPOSITORY_DEVSKIM_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/REPOSITORY_DEVSKIM_DISABLE_ERRORS_IF_LESS_THAN", "default": 0, - "title": "RST_RSTCHECK: Maximum number of errors allowed", + "title": "REPOSITORY_DEVSKIM: Maximum number of errors allowed", "type": "number" }, - "RST_RSTCHECK_FILE_EXTENSIONS": { - "$id": "#/properties/RST_RSTCHECK_FILE_EXTENSIONS", + "REPOSITORY_DEVSKIM_FILE_EXTENSIONS": { + "$id": "#/properties/REPOSITORY_DEVSKIM_FILE_EXTENSIONS", "examples:": [ ".py", ".myext" @@ -8791,18 +8781,11 @@ "items": { "type": "string" }, - "title": "RST_RSTCHECK: Override descriptor/linter matching files extensions", + "title": "REPOSITORY_DEVSKIM: Override descriptor/linter matching files extensions", "type": "array" }, - "RST_RSTCHECK_FILE_NAME": { - "$id": "#/properties/RST_RSTCHECK_FILE_NAME", - "default": ".rstcheck.cfg", - "description": "RST_RSTCHECK: User custom config file name if different from default", - "title": "RST_RSTCHECK: Custom config file name", - "type": "string" - }, - "RST_RSTCHECK_FILE_NAMES_REGEX": { - "$id": "#/properties/RST_RSTCHECK_FILE_NAMES_REGEX", + "REPOSITORY_DEVSKIM_FILE_NAMES_REGEX": { + "$id": "#/properties/REPOSITORY_DEVSKIM_FILE_NAMES_REGEX", "examples": [ "Dockerfile(-.+)?", "Jenkinsfile" @@ -8810,21 +8793,11 @@ "items": { "type": "string" }, - "title": "RST_RSTCHECK: Override descriptor/linter matching file name regex", + "title": "REPOSITORY_DEVSKIM: Override descriptor/linter matching file name regex", "type": "array" }, - "RST_RSTCHECK_FILTER_REGEX_EXCLUDE": { - "$id": "#/properties/RST_RSTCHECK_FILTER_REGEX_EXCLUDE", - "title": "RST_RSTCHECK: Excluding Regex", - "type": "string" - }, - "RST_RSTCHECK_FILTER_REGEX_INCLUDE": { - "$id": "#/properties/RST_RSTCHECK_FILTER_REGEX_INCLUDE", - "title": "RST_RSTCHECK: Including Regex", - "type": "string" - }, - "RST_RSTCHECK_POST_COMMANDS": { - "$id": "#/properties/RST_RSTCHECK_POST_COMMANDS", + "REPOSITORY_DEVSKIM_POST_COMMANDS": { + "$id": "#/properties/REPOSITORY_DEVSKIM_POST_COMMANDS", "examples": [ [ { @@ -8837,11 +8810,11 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "RST_RSTCHECK: Define or override a list of bash commands to run after the linter", + "title": "REPOSITORY_DEVSKIM: Define or override a list of bash commands to run after the linter", "type": "array" }, - "RST_RSTCHECK_PRE_COMMANDS": { - "$id": "#/properties/RST_RSTCHECK_PRE_COMMANDS", + "REPOSITORY_DEVSKIM_PRE_COMMANDS": { + "$id": "#/properties/REPOSITORY_DEVSKIM_PRE_COMMANDS", "examples": [ [ { @@ -8854,18 +8827,12 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "RST_RSTCHECK: Define or override a list of bash commands to run before the linter", + "title": "REPOSITORY_DEVSKIM: Define or override a list of bash commands to run before the linter", "type": "array" }, - "RST_RSTCHECK_RULES_PATH": { - "$id": "#/properties/RST_RSTCHECK_RULES_PATH", - "description": "RST_RSTCHECK: Path where to find linter configuration file", - "title": "RST_RSTCHECK: Custom config file path", - "type": "string" - }, - "RST_RSTFMT_ARGUMENTS": { - "$id": "#/properties/RST_RSTFMT_ARGUMENTS", - "description": "RST_RSTFMT: User custom arguments to add in linter CLI call", + "REPOSITORY_DUSTILOCK_ARGUMENTS": { + "$id": "#/properties/REPOSITORY_DUSTILOCK_ARGUMENTS", + "description": "REPOSITORY_DUSTILOCK: User custom arguments to add in linter CLI call", "examples:": [ "--foo", "bar" @@ -8873,37 +8840,26 @@ "items": { "type": "string" }, - "title": "RST_RSTFMT: Custom arguments", + "title": "REPOSITORY_DUSTILOCK: Custom arguments", "type": [ "array", "string" ] }, - "RST_RSTFMT_CLI_LINT_MODE": { - "$id": "#/properties/RST_RSTFMT_CLI_LINT_MODE", - "default": "file", - "enum": [ - "file", - "list_of_files", - "project" - ], - "title": "RST_RSTFMT: Override default cli lint mode", - "type": "string" - }, - "RST_RSTFMT_DISABLE_ERRORS": { - "$id": "#/properties/RST_RSTFMT_DISABLE_ERRORS", + "REPOSITORY_DUSTILOCK_DISABLE_ERRORS": { + "$id": "#/properties/REPOSITORY_DUSTILOCK_DISABLE_ERRORS", "default": false, - "title": "RST_RSTFMT: Linter does not make MegaLinter fail even if errors are found", + "title": "REPOSITORY_DUSTILOCK: Linter does not make MegaLinter fail even if errors are found", "type": "boolean" }, - "RST_RSTFMT_DISABLE_ERRORS_IF_LESS_THAN": { - "$id": "#/properties/RST_RSTFMT_DISABLE_ERRORS_IF_LESS_THAN", + "REPOSITORY_DUSTILOCK_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/REPOSITORY_DUSTILOCK_DISABLE_ERRORS_IF_LESS_THAN", "default": 0, - "title": "RST_RSTFMT: Maximum number of errors allowed", + "title": "REPOSITORY_DUSTILOCK: Maximum number of errors allowed", "type": "number" }, - "RST_RSTFMT_FILE_EXTENSIONS": { - "$id": "#/properties/RST_RSTFMT_FILE_EXTENSIONS", + "REPOSITORY_DUSTILOCK_FILE_EXTENSIONS": { + "$id": "#/properties/REPOSITORY_DUSTILOCK_FILE_EXTENSIONS", "examples:": [ ".py", ".myext" @@ -8911,11 +8867,11 @@ "items": { "type": "string" }, - "title": "RST_RSTFMT: Override descriptor/linter matching files extensions", + "title": "REPOSITORY_DUSTILOCK: Override descriptor/linter matching files extensions", "type": "array" }, - "RST_RSTFMT_FILE_NAMES_REGEX": { - "$id": "#/properties/RST_RSTFMT_FILE_NAMES_REGEX", + "REPOSITORY_DUSTILOCK_FILE_NAMES_REGEX": { + "$id": "#/properties/REPOSITORY_DUSTILOCK_FILE_NAMES_REGEX", "examples": [ "Dockerfile(-.+)?", "Jenkinsfile" @@ -8923,21 +8879,11 @@ "items": { "type": "string" }, - "title": "RST_RSTFMT: Override descriptor/linter matching file name regex", + "title": "REPOSITORY_DUSTILOCK: Override descriptor/linter matching file name regex", "type": "array" }, - "RST_RSTFMT_FILTER_REGEX_EXCLUDE": { - "$id": "#/properties/RST_RSTFMT_FILTER_REGEX_EXCLUDE", - "title": "RST_RSTFMT: Excluding Regex", - "type": "string" - }, - "RST_RSTFMT_FILTER_REGEX_INCLUDE": { - "$id": "#/properties/RST_RSTFMT_FILTER_REGEX_INCLUDE", - "title": "RST_RSTFMT: Including Regex", - "type": "string" - }, - "RST_RSTFMT_POST_COMMANDS": { - "$id": "#/properties/RST_RSTFMT_POST_COMMANDS", + "REPOSITORY_DUSTILOCK_POST_COMMANDS": { + "$id": "#/properties/REPOSITORY_DUSTILOCK_POST_COMMANDS", "examples": [ [ { @@ -8950,11 +8896,11 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "RST_RSTFMT: Define or override a list of bash commands to run after the linter", + "title": "REPOSITORY_DUSTILOCK: Define or override a list of bash commands to run after the linter", "type": "array" }, - "RST_RSTFMT_PRE_COMMANDS": { - "$id": "#/properties/RST_RSTFMT_PRE_COMMANDS", + "REPOSITORY_DUSTILOCK_PRE_COMMANDS": { + "$id": "#/properties/REPOSITORY_DUSTILOCK_PRE_COMMANDS", "examples": [ [ { @@ -8967,12 +8913,22 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "RST_RSTFMT: Define or override a list of bash commands to run before the linter", + "title": "REPOSITORY_DUSTILOCK: Define or override a list of bash commands to run before the linter", "type": "array" }, - "RST_RST_LINT_ARGUMENTS": { - "$id": "#/properties/RST_RST_LINT_ARGUMENTS", - "description": "RST_RST_LINT: User custom arguments to add in linter CLI call", + "REPOSITORY_FILTER_REGEX_EXCLUDE": { + "$id": "#/properties/REPOSITORY_FILTER_REGEX_EXCLUDE", + "title": "Excluding regex filter for REPOSITORY descriptor", + "type": "string" + }, + "REPOSITORY_FILTER_REGEX_INCLUDE": { + "$id": "#/properties/REPOSITORY_FILTER_REGEX_INCLUDE", + "title": "Including regex filter for REPOSITORY descriptor", + "type": "string" + }, + "REPOSITORY_GITLEAKS_ARGUMENTS": { + "$id": "#/properties/REPOSITORY_GITLEAKS_ARGUMENTS", + "description": "REPOSITORY_GITLEAKS: User custom arguments to add in linter CLI call", "examples:": [ "--foo", "bar" @@ -8980,37 +8936,33 @@ "items": { "type": "string" }, - "title": "RST_RST_LINT: Custom arguments", + "title": "REPOSITORY_GITLEAKS: Custom arguments", "type": [ "array", "string" ] }, - "RST_RST_LINT_CLI_LINT_MODE": { - "$id": "#/properties/RST_RST_LINT_CLI_LINT_MODE", - "default": "file", - "enum": [ - "file", - "list_of_files", - "project" - ], - "title": "RST_RST_LINT: Override default cli lint mode", + "REPOSITORY_GITLEAKS_CONFIG_FILE": { + "$id": "#/properties/REPOSITORY_GITLEAKS_CONFIG_FILE", + "default": ".gitleaks.toml", + "description": "REPOSITORY_GITLEAKS: User custom config file name if different from default", + "title": "REPOSITORY_GITLEAKS: Custom config file name", "type": "string" }, - "RST_RST_LINT_DISABLE_ERRORS": { - "$id": "#/properties/RST_RST_LINT_DISABLE_ERRORS", + "REPOSITORY_GITLEAKS_DISABLE_ERRORS": { + "$id": "#/properties/REPOSITORY_GITLEAKS_DISABLE_ERRORS", "default": false, - "title": "RST_RST_LINT: Linter does not make MegaLinter fail even if errors are found", + "title": "REPOSITORY_GITLEAKS: Linter does not make MegaLinter fail even if errors are found", "type": "boolean" }, - "RST_RST_LINT_DISABLE_ERRORS_IF_LESS_THAN": { - "$id": "#/properties/RST_RST_LINT_DISABLE_ERRORS_IF_LESS_THAN", + "REPOSITORY_GITLEAKS_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/REPOSITORY_GITLEAKS_DISABLE_ERRORS_IF_LESS_THAN", "default": 0, - "title": "RST_RST_LINT: Maximum number of errors allowed", + "title": "REPOSITORY_GITLEAKS: Maximum number of errors allowed", "type": "number" }, - "RST_RST_LINT_FILE_EXTENSIONS": { - "$id": "#/properties/RST_RST_LINT_FILE_EXTENSIONS", + "REPOSITORY_GITLEAKS_FILE_EXTENSIONS": { + "$id": "#/properties/REPOSITORY_GITLEAKS_FILE_EXTENSIONS", "examples:": [ ".py", ".myext" @@ -9018,11 +8970,11 @@ "items": { "type": "string" }, - "title": "RST_RST_LINT: Override descriptor/linter matching files extensions", + "title": "REPOSITORY_GITLEAKS: Override descriptor/linter matching files extensions", "type": "array" }, - "RST_RST_LINT_FILE_NAMES_REGEX": { - "$id": "#/properties/RST_RST_LINT_FILE_NAMES_REGEX", + "REPOSITORY_GITLEAKS_FILE_NAMES_REGEX": { + "$id": "#/properties/REPOSITORY_GITLEAKS_FILE_NAMES_REGEX", "examples": [ "Dockerfile(-.+)?", "Jenkinsfile" @@ -9030,21 +8982,11 @@ "items": { "type": "string" }, - "title": "RST_RST_LINT: Override descriptor/linter matching file name regex", + "title": "REPOSITORY_GITLEAKS: Override descriptor/linter matching file name regex", "type": "array" }, - "RST_RST_LINT_FILTER_REGEX_EXCLUDE": { - "$id": "#/properties/RST_RST_LINT_FILTER_REGEX_EXCLUDE", - "title": "RST_RST_LINT: Excluding Regex", - "type": "string" - }, - "RST_RST_LINT_FILTER_REGEX_INCLUDE": { - "$id": "#/properties/RST_RST_LINT_FILTER_REGEX_INCLUDE", - "title": "RST_RST_LINT: Including Regex", - "type": "string" - }, - "RST_RST_LINT_POST_COMMANDS": { - "$id": "#/properties/RST_RST_LINT_POST_COMMANDS", + "REPOSITORY_GITLEAKS_POST_COMMANDS": { + "$id": "#/properties/REPOSITORY_GITLEAKS_POST_COMMANDS", "examples": [ [ { @@ -9057,11 +8999,11 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "RST_RST_LINT: Define or override a list of bash commands to run after the linter", + "title": "REPOSITORY_GITLEAKS: Define or override a list of bash commands to run after the linter", "type": "array" }, - "RST_RST_LINT_PRE_COMMANDS": { - "$id": "#/properties/RST_RST_LINT_PRE_COMMANDS", + "REPOSITORY_GITLEAKS_PRE_COMMANDS": { + "$id": "#/properties/REPOSITORY_GITLEAKS_PRE_COMMANDS", "examples": [ [ { @@ -9074,22 +9016,18 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "RST_RST_LINT: Define or override a list of bash commands to run before the linter", + "title": "REPOSITORY_GITLEAKS: Define or override a list of bash commands to run before the linter", "type": "array" }, - "RUBY_FILTER_REGEX_EXCLUDE": { - "$id": "#/properties/RUBY_FILTER_REGEX_EXCLUDE", - "title": "Excluding regex filter for RUBY descriptor", - "type": "string" - }, - "RUBY_FILTER_REGEX_INCLUDE": { - "$id": "#/properties/RUBY_FILTER_REGEX_INCLUDE", - "title": "Including regex filter for RUBY descriptor", + "REPOSITORY_GITLEAKS_RULES_PATH": { + "$id": "#/properties/REPOSITORY_GITLEAKS_RULES_PATH", + "description": "REPOSITORY_GITLEAKS: Path where to find linter configuration file", + "title": "REPOSITORY_GITLEAKS: Custom config file path", "type": "string" }, - "RUBY_RUBOCOP_ARGUMENTS": { - "$id": "#/properties/RUBY_RUBOCOP_ARGUMENTS", - "description": "RUBY_RUBOCOP: User custom arguments to add in linter CLI call", + "REPOSITORY_GIT_DIFF_ARGUMENTS": { + "$id": "#/properties/REPOSITORY_GIT_DIFF_ARGUMENTS", + "description": "REPOSITORY_GIT_DIFF: User custom arguments to add in linter CLI call", "examples:": [ "--foo", "bar" @@ -9097,44 +9035,26 @@ "items": { "type": "string" }, - "title": "RUBY_RUBOCOP: Custom arguments", + "title": "REPOSITORY_GIT_DIFF: Custom arguments", "type": [ "array", "string" ] }, - "RUBY_RUBOCOP_CLI_LINT_MODE": { - "$id": "#/properties/RUBY_RUBOCOP_CLI_LINT_MODE", - "default": "file", - "enum": [ - "file", - "list_of_files", - "project" - ], - "title": "RUBY_RUBOCOP: Override default cli lint mode", - "type": "string" - }, - "RUBY_RUBOCOP_CONFIG_FILE": { - "$id": "#/properties/RUBY_RUBOCOP_CONFIG_FILE", - "default": ".ruby-lint.yml", - "description": "RUBY_RUBOCOP: User custom config file name if different from default", - "title": "RUBY_RUBOCOP: Custom config file name", - "type": "string" - }, - "RUBY_RUBOCOP_DISABLE_ERRORS": { - "$id": "#/properties/RUBY_RUBOCOP_DISABLE_ERRORS", + "REPOSITORY_GIT_DIFF_DISABLE_ERRORS": { + "$id": "#/properties/REPOSITORY_GIT_DIFF_DISABLE_ERRORS", "default": false, - "title": "RUBY_RUBOCOP: Linter does not make MegaLinter fail even if errors are found", + "title": "REPOSITORY_GIT_DIFF: Linter does not make MegaLinter fail even if errors are found", "type": "boolean" }, - "RUBY_RUBOCOP_DISABLE_ERRORS_IF_LESS_THAN": { - "$id": "#/properties/RUBY_RUBOCOP_DISABLE_ERRORS_IF_LESS_THAN", + "REPOSITORY_GIT_DIFF_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/REPOSITORY_GIT_DIFF_DISABLE_ERRORS_IF_LESS_THAN", "default": 0, - "title": "RUBY_RUBOCOP: Maximum number of errors allowed", + "title": "REPOSITORY_GIT_DIFF: Maximum number of errors allowed", "type": "number" }, - "RUBY_RUBOCOP_FILE_EXTENSIONS": { - "$id": "#/properties/RUBY_RUBOCOP_FILE_EXTENSIONS", + "REPOSITORY_GIT_DIFF_FILE_EXTENSIONS": { + "$id": "#/properties/REPOSITORY_GIT_DIFF_FILE_EXTENSIONS", "examples:": [ ".py", ".myext" @@ -9142,18 +9062,11 @@ "items": { "type": "string" }, - "title": "RUBY_RUBOCOP: Override descriptor/linter matching files extensions", + "title": "REPOSITORY_GIT_DIFF: Override descriptor/linter matching files extensions", "type": "array" }, - "RUBY_RUBOCOP_FILE_NAME": { - "$id": "#/properties/RUBY_RUBOCOP_FILE_NAME", - "default": ".ruby-lint.yml", - "description": "RUBY_RUBOCOP: User custom config file name if different from default", - "title": "RUBY_RUBOCOP: Custom config file name", - "type": "string" - }, - "RUBY_RUBOCOP_FILE_NAMES_REGEX": { - "$id": "#/properties/RUBY_RUBOCOP_FILE_NAMES_REGEX", + "REPOSITORY_GIT_DIFF_FILE_NAMES_REGEX": { + "$id": "#/properties/REPOSITORY_GIT_DIFF_FILE_NAMES_REGEX", "examples": [ "Dockerfile(-.+)?", "Jenkinsfile" @@ -9161,21 +9074,11 @@ "items": { "type": "string" }, - "title": "RUBY_RUBOCOP: Override descriptor/linter matching file name regex", + "title": "REPOSITORY_GIT_DIFF: Override descriptor/linter matching file name regex", "type": "array" }, - "RUBY_RUBOCOP_FILTER_REGEX_EXCLUDE": { - "$id": "#/properties/RUBY_RUBOCOP_FILTER_REGEX_EXCLUDE", - "title": "RUBY_RUBOCOP: Excluding Regex", - "type": "string" - }, - "RUBY_RUBOCOP_FILTER_REGEX_INCLUDE": { - "$id": "#/properties/RUBY_RUBOCOP_FILTER_REGEX_INCLUDE", - "title": "RUBY_RUBOCOP: Including Regex", - "type": "string" - }, - "RUBY_RUBOCOP_POST_COMMANDS": { - "$id": "#/properties/RUBY_RUBOCOP_POST_COMMANDS", + "REPOSITORY_GIT_DIFF_POST_COMMANDS": { + "$id": "#/properties/REPOSITORY_GIT_DIFF_POST_COMMANDS", "examples": [ [ { @@ -9188,11 +9091,11 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "RUBY_RUBOCOP: Define or override a list of bash commands to run after the linter", + "title": "REPOSITORY_GIT_DIFF: Define or override a list of bash commands to run after the linter", "type": "array" }, - "RUBY_RUBOCOP_PRE_COMMANDS": { - "$id": "#/properties/RUBY_RUBOCOP_PRE_COMMANDS", + "REPOSITORY_GIT_DIFF_PRE_COMMANDS": { + "$id": "#/properties/REPOSITORY_GIT_DIFF_PRE_COMMANDS", "examples": [ [ { @@ -9205,18 +9108,12 @@ "items": { "$ref": "#/definitions/command_info" }, - "title": "RUBY_RUBOCOP: Define or override a list of bash commands to run before the linter", + "title": "REPOSITORY_GIT_DIFF: Define or override a list of bash commands to run before the linter", "type": "array" }, - "RUBY_RUBOCOP_RULES_PATH": { - "$id": "#/properties/RUBY_RUBOCOP_RULES_PATH", - "description": "RUBY_RUBOCOP: Path where to find linter configuration file", - "title": "RUBY_RUBOCOP: Custom config file path", - "type": "string" - }, - "RUST_CLIPPY_ARGUMENTS": { - "$id": "#/properties/RUST_CLIPPY_ARGUMENTS", - "description": "RUST_CLIPPY: User custom arguments to add in linter CLI call", + "REPOSITORY_GOODCHECK_ARGUMENTS": { + "$id": "#/properties/REPOSITORY_GOODCHECK_ARGUMENTS", + "description": "REPOSITORY_GOODCHECK: User custom arguments to add in linter CLI call", "examples:": [ "--foo", "bar" @@ -9224,16 +9121,973 @@ "items": { "type": "string" }, - "title": "RUST_CLIPPY: Custom arguments", + "title": "REPOSITORY_GOODCHECK: Custom arguments", "type": [ "array", "string" ] }, - "RUST_CLIPPY_CONFIG_FILE": { - "$id": "#/properties/RUST_CLIPPY_CONFIG_FILE", - "default": ".clippy.toml", - "description": "RUST_CLIPPY: User custom config file name if different from default", + "REPOSITORY_GOODCHECK_CONFIG_FILE": { + "$id": "#/properties/REPOSITORY_GOODCHECK_CONFIG_FILE", + "default": "goodcheck.yml", + "description": "REPOSITORY_GOODCHECK: User custom config file name if different from default", + "title": "REPOSITORY_GOODCHECK: Custom config file name", + "type": "string" + }, + "REPOSITORY_GOODCHECK_DISABLE_ERRORS": { + "$id": "#/properties/REPOSITORY_GOODCHECK_DISABLE_ERRORS", + "default": false, + "title": "REPOSITORY_GOODCHECK: Linter does not make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "REPOSITORY_GOODCHECK_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/REPOSITORY_GOODCHECK_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "REPOSITORY_GOODCHECK: Maximum number of errors allowed", + "type": "number" + }, + "REPOSITORY_GOODCHECK_FILE_EXTENSIONS": { + "$id": "#/properties/REPOSITORY_GOODCHECK_FILE_EXTENSIONS", + "examples:": [ + ".py", + ".myext" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_GOODCHECK: Override descriptor/linter matching files extensions", + "type": "array" + }, + "REPOSITORY_GOODCHECK_FILE_NAMES_REGEX": { + "$id": "#/properties/REPOSITORY_GOODCHECK_FILE_NAMES_REGEX", + "examples": [ + "Dockerfile(-.+)?", + "Jenkinsfile" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_GOODCHECK: Override descriptor/linter matching file name regex", + "type": "array" + }, + "REPOSITORY_GOODCHECK_POST_COMMANDS": { + "$id": "#/properties/REPOSITORY_GOODCHECK_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_GOODCHECK: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "REPOSITORY_GOODCHECK_PRE_COMMANDS": { + "$id": "#/properties/REPOSITORY_GOODCHECK_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_GOODCHECK: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "REPOSITORY_GOODCHECK_RULES_PATH": { + "$id": "#/properties/REPOSITORY_GOODCHECK_RULES_PATH", + "description": "REPOSITORY_GOODCHECK: Path where to find linter configuration file", + "title": "REPOSITORY_GOODCHECK: Custom config file path", + "type": "string" + }, + "REPOSITORY_SECRETLINT_ARGUMENTS": { + "$id": "#/properties/REPOSITORY_SECRETLINT_ARGUMENTS", + "description": "REPOSITORY_SECRETLINT: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_SECRETLINT: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "REPOSITORY_SECRETLINT_CONFIG_FILE": { + "$id": "#/properties/REPOSITORY_SECRETLINT_CONFIG_FILE", + "default": ".secretlintrc.json", + "description": "REPOSITORY_SECRETLINT: User custom config file name if different from default", + "title": "REPOSITORY_SECRETLINT: Custom config file name", + "type": "string" + }, + "REPOSITORY_SECRETLINT_DISABLE_ERRORS": { + "$id": "#/properties/REPOSITORY_SECRETLINT_DISABLE_ERRORS", + "default": false, + "title": "REPOSITORY_SECRETLINT: Linter does not make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "REPOSITORY_SECRETLINT_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/REPOSITORY_SECRETLINT_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "REPOSITORY_SECRETLINT: Maximum number of errors allowed", + "type": "number" + }, + "REPOSITORY_SECRETLINT_FILE_EXTENSIONS": { + "$id": "#/properties/REPOSITORY_SECRETLINT_FILE_EXTENSIONS", + "examples:": [ + ".py", + ".myext" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_SECRETLINT: Override descriptor/linter matching files extensions", + "type": "array" + }, + "REPOSITORY_SECRETLINT_FILE_NAMES_REGEX": { + "$id": "#/properties/REPOSITORY_SECRETLINT_FILE_NAMES_REGEX", + "examples": [ + "Dockerfile(-.+)?", + "Jenkinsfile" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_SECRETLINT: Override descriptor/linter matching file name regex", + "type": "array" + }, + "REPOSITORY_SECRETLINT_POST_COMMANDS": { + "$id": "#/properties/REPOSITORY_SECRETLINT_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_SECRETLINT: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "REPOSITORY_SECRETLINT_PRE_COMMANDS": { + "$id": "#/properties/REPOSITORY_SECRETLINT_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_SECRETLINT: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "REPOSITORY_SECRETLINT_RULES_PATH": { + "$id": "#/properties/REPOSITORY_SECRETLINT_RULES_PATH", + "description": "REPOSITORY_SECRETLINT: Path where to find linter configuration file", + "title": "REPOSITORY_SECRETLINT: Custom config file path", + "type": "string" + }, + "REPOSITORY_SEMGREP_ARGUMENTS": { + "$id": "#/properties/REPOSITORY_SEMGREP_ARGUMENTS", + "description": "REPOSITORY_SEMGREP: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_SEMGREP: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "REPOSITORY_SEMGREP_DISABLE_ERRORS": { + "$id": "#/properties/REPOSITORY_SEMGREP_DISABLE_ERRORS", + "default": false, + "title": "REPOSITORY_SEMGREP: Linter does not make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "REPOSITORY_SEMGREP_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/REPOSITORY_SEMGREP_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "REPOSITORY_SEMGREP: Maximum number of errors allowed", + "type": "number" + }, + "REPOSITORY_SEMGREP_FILE_EXTENSIONS": { + "$id": "#/properties/REPOSITORY_SEMGREP_FILE_EXTENSIONS", + "examples:": [ + ".py", + ".myext" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_SEMGREP: Override descriptor/linter matching files extensions", + "type": "array" + }, + "REPOSITORY_SEMGREP_FILE_NAMES_REGEX": { + "$id": "#/properties/REPOSITORY_SEMGREP_FILE_NAMES_REGEX", + "examples": [ + "Dockerfile(-.+)?", + "Jenkinsfile" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_SEMGREP: Override descriptor/linter matching file name regex", + "type": "array" + }, + "REPOSITORY_SEMGREP_POST_COMMANDS": { + "$id": "#/properties/REPOSITORY_SEMGREP_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_SEMGREP: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "REPOSITORY_SEMGREP_PRE_COMMANDS": { + "$id": "#/properties/REPOSITORY_SEMGREP_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_SEMGREP: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "REPOSITORY_SYFT_ARGUMENTS": { + "$id": "#/properties/REPOSITORY_SYFT_ARGUMENTS", + "description": "REPOSITORY_SYFT: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_SYFT: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "REPOSITORY_SYFT_CONFIG_FILE": { + "$id": "#/properties/REPOSITORY_SYFT_CONFIG_FILE", + "default": ".syft.yaml", + "description": "REPOSITORY_SYFT: User custom config file name if different from default", + "title": "REPOSITORY_SYFT: Custom config file name", + "type": "string" + }, + "REPOSITORY_SYFT_DISABLE_ERRORS": { + "$id": "#/properties/REPOSITORY_SYFT_DISABLE_ERRORS", + "default": false, + "title": "REPOSITORY_SYFT: Linter does not make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "REPOSITORY_SYFT_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/REPOSITORY_SYFT_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "REPOSITORY_SYFT: Maximum number of errors allowed", + "type": "number" + }, + "REPOSITORY_SYFT_FILE_EXTENSIONS": { + "$id": "#/properties/REPOSITORY_SYFT_FILE_EXTENSIONS", + "examples:": [ + ".py", + ".myext" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_SYFT: Override descriptor/linter matching files extensions", + "type": "array" + }, + "REPOSITORY_SYFT_FILE_NAMES_REGEX": { + "$id": "#/properties/REPOSITORY_SYFT_FILE_NAMES_REGEX", + "examples": [ + "Dockerfile(-.+)?", + "Jenkinsfile" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_SYFT: Override descriptor/linter matching file name regex", + "type": "array" + }, + "REPOSITORY_SYFT_POST_COMMANDS": { + "$id": "#/properties/REPOSITORY_SYFT_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_SYFT: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "REPOSITORY_SYFT_PRE_COMMANDS": { + "$id": "#/properties/REPOSITORY_SYFT_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_SYFT: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "REPOSITORY_SYFT_RULES_PATH": { + "$id": "#/properties/REPOSITORY_SYFT_RULES_PATH", + "description": "REPOSITORY_SYFT: Path where to find linter configuration file", + "title": "REPOSITORY_SYFT: Custom config file path", + "type": "string" + }, + "REPOSITORY_TRIVY_ARGUMENTS": { + "$id": "#/properties/REPOSITORY_TRIVY_ARGUMENTS", + "description": "REPOSITORY_TRIVY: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_TRIVY: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "REPOSITORY_TRIVY_DISABLE_ERRORS": { + "$id": "#/properties/REPOSITORY_TRIVY_DISABLE_ERRORS", + "default": false, + "title": "REPOSITORY_TRIVY: Linter does not make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "REPOSITORY_TRIVY_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/REPOSITORY_TRIVY_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "REPOSITORY_TRIVY: Maximum number of errors allowed", + "type": "number" + }, + "REPOSITORY_TRIVY_FILE_EXTENSIONS": { + "$id": "#/properties/REPOSITORY_TRIVY_FILE_EXTENSIONS", + "examples:": [ + ".py", + ".myext" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_TRIVY: Override descriptor/linter matching files extensions", + "type": "array" + }, + "REPOSITORY_TRIVY_FILE_NAMES_REGEX": { + "$id": "#/properties/REPOSITORY_TRIVY_FILE_NAMES_REGEX", + "examples": [ + "Dockerfile(-.+)?", + "Jenkinsfile" + ], + "items": { + "type": "string" + }, + "title": "REPOSITORY_TRIVY: Override descriptor/linter matching file name regex", + "type": "array" + }, + "REPOSITORY_TRIVY_POST_COMMANDS": { + "$id": "#/properties/REPOSITORY_TRIVY_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_TRIVY: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "REPOSITORY_TRIVY_PRE_COMMANDS": { + "$id": "#/properties/REPOSITORY_TRIVY_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "REPOSITORY_TRIVY: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "RST_FILTER_REGEX_EXCLUDE": { + "$id": "#/properties/RST_FILTER_REGEX_EXCLUDE", + "title": "Excluding regex filter for RST descriptor", + "type": "string" + }, + "RST_FILTER_REGEX_INCLUDE": { + "$id": "#/properties/RST_FILTER_REGEX_INCLUDE", + "title": "Including regex filter for RST descriptor", + "type": "string" + }, + "RST_RSTCHECK_ARGUMENTS": { + "$id": "#/properties/RST_RSTCHECK_ARGUMENTS", + "description": "RST_RSTCHECK: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "RST_RSTCHECK: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "RST_RSTCHECK_CLI_LINT_MODE": { + "$id": "#/properties/RST_RSTCHECK_CLI_LINT_MODE", + "default": "file", + "enum": [ + "file", + "list_of_files", + "project" + ], + "title": "RST_RSTCHECK: Override default cli lint mode", + "type": "string" + }, + "RST_RSTCHECK_CONFIG_FILE": { + "$id": "#/properties/RST_RSTCHECK_CONFIG_FILE", + "default": ".rstcheck.cfg", + "description": "RST_RSTCHECK: User custom config file name if different from default", + "title": "RST_RSTCHECK: Custom config file name", + "type": "string" + }, + "RST_RSTCHECK_DISABLE_ERRORS": { + "$id": "#/properties/RST_RSTCHECK_DISABLE_ERRORS", + "default": false, + "title": "RST_RSTCHECK: Linter does not make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "RST_RSTCHECK_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/RST_RSTCHECK_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "RST_RSTCHECK: Maximum number of errors allowed", + "type": "number" + }, + "RST_RSTCHECK_FILE_EXTENSIONS": { + "$id": "#/properties/RST_RSTCHECK_FILE_EXTENSIONS", + "examples:": [ + ".py", + ".myext" + ], + "items": { + "type": "string" + }, + "title": "RST_RSTCHECK: Override descriptor/linter matching files extensions", + "type": "array" + }, + "RST_RSTCHECK_FILE_NAME": { + "$id": "#/properties/RST_RSTCHECK_FILE_NAME", + "default": ".rstcheck.cfg", + "description": "RST_RSTCHECK: User custom config file name if different from default", + "title": "RST_RSTCHECK: Custom config file name", + "type": "string" + }, + "RST_RSTCHECK_FILE_NAMES_REGEX": { + "$id": "#/properties/RST_RSTCHECK_FILE_NAMES_REGEX", + "examples": [ + "Dockerfile(-.+)?", + "Jenkinsfile" + ], + "items": { + "type": "string" + }, + "title": "RST_RSTCHECK: Override descriptor/linter matching file name regex", + "type": "array" + }, + "RST_RSTCHECK_FILTER_REGEX_EXCLUDE": { + "$id": "#/properties/RST_RSTCHECK_FILTER_REGEX_EXCLUDE", + "title": "RST_RSTCHECK: Excluding Regex", + "type": "string" + }, + "RST_RSTCHECK_FILTER_REGEX_INCLUDE": { + "$id": "#/properties/RST_RSTCHECK_FILTER_REGEX_INCLUDE", + "title": "RST_RSTCHECK: Including Regex", + "type": "string" + }, + "RST_RSTCHECK_POST_COMMANDS": { + "$id": "#/properties/RST_RSTCHECK_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "RST_RSTCHECK: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "RST_RSTCHECK_PRE_COMMANDS": { + "$id": "#/properties/RST_RSTCHECK_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "RST_RSTCHECK: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "RST_RSTCHECK_RULES_PATH": { + "$id": "#/properties/RST_RSTCHECK_RULES_PATH", + "description": "RST_RSTCHECK: Path where to find linter configuration file", + "title": "RST_RSTCHECK: Custom config file path", + "type": "string" + }, + "RST_RSTFMT_ARGUMENTS": { + "$id": "#/properties/RST_RSTFMT_ARGUMENTS", + "description": "RST_RSTFMT: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "RST_RSTFMT: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "RST_RSTFMT_CLI_LINT_MODE": { + "$id": "#/properties/RST_RSTFMT_CLI_LINT_MODE", + "default": "file", + "enum": [ + "file", + "list_of_files", + "project" + ], + "title": "RST_RSTFMT: Override default cli lint mode", + "type": "string" + }, + "RST_RSTFMT_DISABLE_ERRORS": { + "$id": "#/properties/RST_RSTFMT_DISABLE_ERRORS", + "default": false, + "title": "RST_RSTFMT: Linter does not make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "RST_RSTFMT_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/RST_RSTFMT_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "RST_RSTFMT: Maximum number of errors allowed", + "type": "number" + }, + "RST_RSTFMT_FILE_EXTENSIONS": { + "$id": "#/properties/RST_RSTFMT_FILE_EXTENSIONS", + "examples:": [ + ".py", + ".myext" + ], + "items": { + "type": "string" + }, + "title": "RST_RSTFMT: Override descriptor/linter matching files extensions", + "type": "array" + }, + "RST_RSTFMT_FILE_NAMES_REGEX": { + "$id": "#/properties/RST_RSTFMT_FILE_NAMES_REGEX", + "examples": [ + "Dockerfile(-.+)?", + "Jenkinsfile" + ], + "items": { + "type": "string" + }, + "title": "RST_RSTFMT: Override descriptor/linter matching file name regex", + "type": "array" + }, + "RST_RSTFMT_FILTER_REGEX_EXCLUDE": { + "$id": "#/properties/RST_RSTFMT_FILTER_REGEX_EXCLUDE", + "title": "RST_RSTFMT: Excluding Regex", + "type": "string" + }, + "RST_RSTFMT_FILTER_REGEX_INCLUDE": { + "$id": "#/properties/RST_RSTFMT_FILTER_REGEX_INCLUDE", + "title": "RST_RSTFMT: Including Regex", + "type": "string" + }, + "RST_RSTFMT_POST_COMMANDS": { + "$id": "#/properties/RST_RSTFMT_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "RST_RSTFMT: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "RST_RSTFMT_PRE_COMMANDS": { + "$id": "#/properties/RST_RSTFMT_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "RST_RSTFMT: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "RST_RST_LINT_ARGUMENTS": { + "$id": "#/properties/RST_RST_LINT_ARGUMENTS", + "description": "RST_RST_LINT: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "RST_RST_LINT: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "RST_RST_LINT_CLI_LINT_MODE": { + "$id": "#/properties/RST_RST_LINT_CLI_LINT_MODE", + "default": "file", + "enum": [ + "file", + "list_of_files", + "project" + ], + "title": "RST_RST_LINT: Override default cli lint mode", + "type": "string" + }, + "RST_RST_LINT_DISABLE_ERRORS": { + "$id": "#/properties/RST_RST_LINT_DISABLE_ERRORS", + "default": false, + "title": "RST_RST_LINT: Linter does not make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "RST_RST_LINT_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/RST_RST_LINT_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "RST_RST_LINT: Maximum number of errors allowed", + "type": "number" + }, + "RST_RST_LINT_FILE_EXTENSIONS": { + "$id": "#/properties/RST_RST_LINT_FILE_EXTENSIONS", + "examples:": [ + ".py", + ".myext" + ], + "items": { + "type": "string" + }, + "title": "RST_RST_LINT: Override descriptor/linter matching files extensions", + "type": "array" + }, + "RST_RST_LINT_FILE_NAMES_REGEX": { + "$id": "#/properties/RST_RST_LINT_FILE_NAMES_REGEX", + "examples": [ + "Dockerfile(-.+)?", + "Jenkinsfile" + ], + "items": { + "type": "string" + }, + "title": "RST_RST_LINT: Override descriptor/linter matching file name regex", + "type": "array" + }, + "RST_RST_LINT_FILTER_REGEX_EXCLUDE": { + "$id": "#/properties/RST_RST_LINT_FILTER_REGEX_EXCLUDE", + "title": "RST_RST_LINT: Excluding Regex", + "type": "string" + }, + "RST_RST_LINT_FILTER_REGEX_INCLUDE": { + "$id": "#/properties/RST_RST_LINT_FILTER_REGEX_INCLUDE", + "title": "RST_RST_LINT: Including Regex", + "type": "string" + }, + "RST_RST_LINT_POST_COMMANDS": { + "$id": "#/properties/RST_RST_LINT_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "RST_RST_LINT: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "RST_RST_LINT_PRE_COMMANDS": { + "$id": "#/properties/RST_RST_LINT_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "RST_RST_LINT: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "RUBY_FILTER_REGEX_EXCLUDE": { + "$id": "#/properties/RUBY_FILTER_REGEX_EXCLUDE", + "title": "Excluding regex filter for RUBY descriptor", + "type": "string" + }, + "RUBY_FILTER_REGEX_INCLUDE": { + "$id": "#/properties/RUBY_FILTER_REGEX_INCLUDE", + "title": "Including regex filter for RUBY descriptor", + "type": "string" + }, + "RUBY_RUBOCOP_ARGUMENTS": { + "$id": "#/properties/RUBY_RUBOCOP_ARGUMENTS", + "description": "RUBY_RUBOCOP: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "RUBY_RUBOCOP: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "RUBY_RUBOCOP_CLI_LINT_MODE": { + "$id": "#/properties/RUBY_RUBOCOP_CLI_LINT_MODE", + "default": "file", + "enum": [ + "file", + "list_of_files", + "project" + ], + "title": "RUBY_RUBOCOP: Override default cli lint mode", + "type": "string" + }, + "RUBY_RUBOCOP_CONFIG_FILE": { + "$id": "#/properties/RUBY_RUBOCOP_CONFIG_FILE", + "default": ".ruby-lint.yml", + "description": "RUBY_RUBOCOP: User custom config file name if different from default", + "title": "RUBY_RUBOCOP: Custom config file name", + "type": "string" + }, + "RUBY_RUBOCOP_DISABLE_ERRORS": { + "$id": "#/properties/RUBY_RUBOCOP_DISABLE_ERRORS", + "default": false, + "title": "RUBY_RUBOCOP: Linter does not make MegaLinter fail even if errors are found", + "type": "boolean" + }, + "RUBY_RUBOCOP_DISABLE_ERRORS_IF_LESS_THAN": { + "$id": "#/properties/RUBY_RUBOCOP_DISABLE_ERRORS_IF_LESS_THAN", + "default": 0, + "title": "RUBY_RUBOCOP: Maximum number of errors allowed", + "type": "number" + }, + "RUBY_RUBOCOP_FILE_EXTENSIONS": { + "$id": "#/properties/RUBY_RUBOCOP_FILE_EXTENSIONS", + "examples:": [ + ".py", + ".myext" + ], + "items": { + "type": "string" + }, + "title": "RUBY_RUBOCOP: Override descriptor/linter matching files extensions", + "type": "array" + }, + "RUBY_RUBOCOP_FILE_NAME": { + "$id": "#/properties/RUBY_RUBOCOP_FILE_NAME", + "default": ".ruby-lint.yml", + "description": "RUBY_RUBOCOP: User custom config file name if different from default", + "title": "RUBY_RUBOCOP: Custom config file name", + "type": "string" + }, + "RUBY_RUBOCOP_FILE_NAMES_REGEX": { + "$id": "#/properties/RUBY_RUBOCOP_FILE_NAMES_REGEX", + "examples": [ + "Dockerfile(-.+)?", + "Jenkinsfile" + ], + "items": { + "type": "string" + }, + "title": "RUBY_RUBOCOP: Override descriptor/linter matching file name regex", + "type": "array" + }, + "RUBY_RUBOCOP_FILTER_REGEX_EXCLUDE": { + "$id": "#/properties/RUBY_RUBOCOP_FILTER_REGEX_EXCLUDE", + "title": "RUBY_RUBOCOP: Excluding Regex", + "type": "string" + }, + "RUBY_RUBOCOP_FILTER_REGEX_INCLUDE": { + "$id": "#/properties/RUBY_RUBOCOP_FILTER_REGEX_INCLUDE", + "title": "RUBY_RUBOCOP: Including Regex", + "type": "string" + }, + "RUBY_RUBOCOP_POST_COMMANDS": { + "$id": "#/properties/RUBY_RUBOCOP_POST_COMMANDS", + "examples": [ + [ + { + "command": "npm run test", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "RUBY_RUBOCOP: Define or override a list of bash commands to run after the linter", + "type": "array" + }, + "RUBY_RUBOCOP_PRE_COMMANDS": { + "$id": "#/properties/RUBY_RUBOCOP_PRE_COMMANDS", + "examples": [ + [ + { + "command": "tflint --init", + "continue_if_failed": false, + "cwd": "workspace" + } + ] + ], + "items": { + "$ref": "#/definitions/command_info" + }, + "title": "RUBY_RUBOCOP: Define or override a list of bash commands to run before the linter", + "type": "array" + }, + "RUBY_RUBOCOP_RULES_PATH": { + "$id": "#/properties/RUBY_RUBOCOP_RULES_PATH", + "description": "RUBY_RUBOCOP: Path where to find linter configuration file", + "title": "RUBY_RUBOCOP: Custom config file path", + "type": "string" + }, + "RUST_CLIPPY_ARGUMENTS": { + "$id": "#/properties/RUST_CLIPPY_ARGUMENTS", + "description": "RUST_CLIPPY: User custom arguments to add in linter CLI call", + "examples:": [ + "--foo", + "bar" + ], + "items": { + "type": "string" + }, + "title": "RUST_CLIPPY: Custom arguments", + "type": [ + "array", + "string" + ] + }, + "RUST_CLIPPY_CONFIG_FILE": { + "$id": "#/properties/RUST_CLIPPY_CONFIG_FILE", + "default": ".clippy.toml", + "description": "RUST_CLIPPY: User custom config file name if different from default", "title": "RUST_CLIPPY: Custom config file name", "type": "string" }, @@ -12754,7 +13608,7 @@ }, "YAML_V8R_CLI_LINT_MODE": { "$id": "#/properties/YAML_V8R_CLI_LINT_MODE", - "default": "file", + "default": "list_of_files", "enum": [ "file", "list_of_files", diff --git a/megalinter/descriptors/schemas/megalinter-descriptor.jsonschema.json b/megalinter/descriptors/schemas/megalinter-descriptor.jsonschema.json index 7a8e57169d6..45ab03b01bc 100644 --- a/megalinter/descriptors/schemas/megalinter-descriptor.jsonschema.json +++ b/megalinter/descriptors/schemas/megalinter-descriptor.jsonschema.json @@ -42,7 +42,6 @@ "all_flavors", "all", "ci_light", - "dart", "documentation", "dotnet", "go", @@ -53,7 +52,7 @@ "ruby", "rust", "salesforce", - "scala", + "security", "swift", "terraform" ], @@ -449,6 +448,13 @@ "title": "Active if one of file names found", "type": "array" }, + "can_output_sarif": { + "$id": "#/properties/linters/items/properties/can_output_sarif", + "default": false, + "description": "Shows if the linter is capable of output SARIF report within MegaLinter", + "title": "Can output SARIF", + "type": "boolean" + }, "class": { "$id": "#/properties/linters/items/properties/class", "description": "If MegaLinter core is not enough, use a custom class inheriting from Linter class", @@ -465,6 +471,11 @@ "title": "CLI configuration file argument name if different from -c", "type": "string" }, + "cli_config_default_value": { + "$id": "#/properties/linters/items/properties/cli_config_default_value", + "title": "Default value for config argument, in case it is not a file", + "type": "string" + }, "cli_config_extra_args": { "$id": "#/properties/linters/items/properties/cli_config_extra_args", "default": [], @@ -641,6 +652,24 @@ "title": "Linting mode", "type": "string" }, + "cli_sarif_args": { + "$id": "#/properties/linters/items/properties/cli_sarif_args", + "default": [], + "description": "Arguments to generate SARIF output", + "examples": [ + [ + "--format", + "sarif", + "--output", + "{{SARIF_OUTPUT_FILE}}" + ] + ], + "items": { + "type": "string" + }, + "title": "CLI SARIF run arguments", + "type": "array" + }, "cli_version_arg_name": { "$id": "#/properties/linters/items/properties/cli_version_arg_name", "title": "CLI version argument name if different from -v", @@ -1065,6 +1094,17 @@ "title": "Linter Pre-run commands", "type": "array" }, + "sarif_default_output_file": { + "$id": "#/properties/linters/items/sarif_default_output_file", + "description": "Path to find default SARIF output file when generated by linter", + "examples": [ + [ + "./results.sarif" + ] + ], + "title": "SARIF default output file", + "type": "string" + }, "test_folder": { "$id": "#/properties/linters/items/test_folder", "description": "Test folder containing _good_ and _bad_ files, if different from parent descriptor test_folder", diff --git a/megalinter/descriptors/snakemake.megalinter-descriptor.yml b/megalinter/descriptors/snakemake.megalinter-descriptor.yml index 2d5bdd85699..a9298f51811 100644 --- a/megalinter/descriptors/snakemake.megalinter-descriptor.yml +++ b/megalinter/descriptors/snakemake.megalinter-descriptor.yml @@ -31,9 +31,11 @@ linters: url: https://marketplace.visualstudio.com/items?itemName=alping.vscode-snakemake # Snake Fmt - linter_name: snakefmt + disabled: true is_formatter: true name: SNAKEMAKE_SNAKEFMT linter_url: https://github.com/snakemake/snakefmt + linter_repo: https://github.com/snakemake/snakefmt linter_rules_configuration_url: https://github.com/snakemake/snakefmt#configuration config_file_name: .snakefmt.toml cli_lint_extra_args: @@ -48,6 +50,7 @@ linters: - "snakefmt --check --compact-diff Snakefile" - "snakefmt --check --compact-diff --config .snakefmt.toml Snakefile" - "snakefmt --config .snakefmt.toml Snakefile" # Fix + downgraded_version: true install: pip: - - snakefmt + - snakefmt==0.4.4 diff --git a/megalinter/descriptors/spell.megalinter-descriptor.yml b/megalinter/descriptors/spell.megalinter-descriptor.yml index edb71381c7f..f66560a7317 100644 --- a/megalinter/descriptors/spell.megalinter-descriptor.yml +++ b/megalinter/descriptors/spell.megalinter-descriptor.yml @@ -3,12 +3,15 @@ descriptor_type: other descriptor_flavors: - all_flavors # Applicable to CI in any language project lint_all_other_linters_files: true +file_extensions: + - "*" linters: # MISSPELL - linter_name: misspell name: SPELL_MISSPELL linter_text: misspell detects and corrects commonly misspelled english words linter_url: https://github.com/client9/misspell + linter_repo: https://github.com/client9/misspell cli_lint_mode: list_of_files cli_lint_extra_args: - "-error" diff --git a/megalinter/descriptors/sql.megalinter-descriptor.yml b/megalinter/descriptors/sql.megalinter-descriptor.yml index 3cc9b98e10b..cca2cf4cbc2 100644 --- a/megalinter/descriptors/sql.megalinter-descriptor.yml +++ b/megalinter/descriptors/sql.megalinter-descriptor.yml @@ -8,6 +8,7 @@ linters: # SQL-LINT - linter_name: sql-lint linter_url: https://github.com/joereynolds/sql-lint + linter_repo: https://github.com/joereynolds/sql-lint linter_rules_url: https://github.com/joereynolds/sql-lint#checks linter_rules_configuration_url: https://sql-lint.readthedocs.io/en/latest/files/configuration.html config_file_name: .sql-config.json @@ -67,7 +68,21 @@ linters: - "tsqllint myfile.sql" - "tsqllint myfile.sql myfile2.sql" install: + apk: + - icu-libs + - libcurl + - libintl + - libssl1.1 + - libstdc++ + - lttng-ust-dev + - zlib + - zlib-dev dockerfile: + - | + RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest + - ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" - RUN dotnet tool install --global TSQLLint ide: vscode: diff --git a/megalinter/descriptors/tekton.megalinter-descriptor.yml b/megalinter/descriptors/tekton.megalinter-descriptor.yml index 220cc2d2fc3..a2203582b30 100644 --- a/megalinter/descriptors/tekton.megalinter-descriptor.yml +++ b/megalinter/descriptors/tekton.megalinter-descriptor.yml @@ -11,6 +11,7 @@ linters: # TEKTON-LINT - linter_name: tekton-lint linter_url: https://github.com/IBM/tekton-lint + linter_repo: https://github.com/IBM/tekton-lint linter_rules_url: https://github.com/IBM/tekton-lint#rules linter_rules_configuration_url: https://github.com/IBM/tekton-lint#configuring-tekton-lint config_file_name: .tektonlintrc.yaml diff --git a/megalinter/descriptors/terraform.megalinter-descriptor.yml b/megalinter/descriptors/terraform.megalinter-descriptor.yml index 1c524b9897f..e590e171a1c 100644 --- a/megalinter/descriptors/terraform.megalinter-descriptor.yml +++ b/megalinter/descriptors/terraform.megalinter-descriptor.yml @@ -7,13 +7,21 @@ file_extensions: linters: # TFLINT - class: TfLintLinter + can_output_sarif: true linter_name: tflint name: TERRAFORM_TFLINT + descriptor_flavors: + - terraform + - security linter_url: https://github.com/terraform-linters/tflint + linter_repo: https://github.com/terraform-linters/tflint linter_rules_url: https://github.com/terraform-linters/tflint/tree/master/docs/rules#rules linter_rules_configuration_url: https://github.com/terraform-linters/tflint/blob/master/docs/guides/config.md linter_rules_inline_disable_url: https://github.com/terraform-linters/tflint/blob/master/docs/guides/annotations.md config_file_name: .tflint.hcl + cli_sarif_args: + - --format + - sarif examples: - "tflint myfile.tf" - "tflint -c .tflint.hcl myfile.tf" @@ -25,28 +33,38 @@ linters: # TERRASCAN - class: TerrascanLinter linter_name: terrascan + can_output_sarif: true name: TERRAFORM_TERRASCAN + descriptor_flavors: + - terraform + - security linter_url: https://www.accurics.com/products/terrascan/ linter_repo: https://github.com/accurics/terrascan linter_rules_url: https://docs.accurics.com/projects/accurics-terrascan/en/latest/policies/ linter_rules_configuration_url: https://docs.accurics.com/projects/accurics-terrascan/en/latest/policies/ - linter_banner_image_url: https://www.accurics.com/wp-content/uploads/elementor/thumbs/Terrascan_By_Accurics_Logo_38B34A-F2F2F2_600px-ousqq3op24fn35s67j5dzk3akvuupafmt2sq5dygka.png + linter_banner_image_url: https://raw.githubusercontent.com/tenable/runterrascan.io/main/static/images/TerrascanTM_BY_Logo.png config_file_name: terrascan-config.toml cli_config_arg_name: --config-path cli_lint_mode: project cli_lint_extra_args: - "scan" + - "d" + - "." - "-i" - "terraform" - "-t" - "all" + - "-v" + cli_sarif_args: + - -o + - sarif cli_version_arg_name: "version" test_folder: terraform_terrascan examples: - "terrascan scan -i terraform -t all -f myfile.tf" install: dockerfile: - - FROM accurics/terrascan:latest as terrascan + - FROM tenable/terrascan:latest as terrascan - COPY --from=terrascan /go/bin/terrascan /usr/bin/ # TERRAGRUNT - linter_name: terragrunt @@ -55,6 +73,9 @@ linters: - ".hcl" file_names_not_ends_with: - ".tflint.hcl" + descriptor_flavors: + - terraform + - security linter_url: https://terragrunt.gruntwork.io linter_repo: https://github.com/gruntwork-io/terragrunt linter_rules_configuration_url: https://terragrunt.gruntwork.io/docs/getting-started/configuration/#terragrunt-configuration-file @@ -97,6 +118,7 @@ linters: - "terraform fmt myfile.tf" install: dockerfile: + - FROM alpine/terragrunt:latest as terragrunt - COPY --from=terragrunt /bin/terraform /usr/bin/ ide: atom: @@ -116,6 +138,10 @@ linters: # CHECKOV - linter_name: checkov name: TERRAFORM_CHECKOV + can_output_sarif: true + descriptor_flavors: + - terraform + - security linter_url: https://www.checkov.io/ linter_repo: https://github.com/bridgecrewio/checkov linter_banner_image_url: https://raw.githubusercontent.com/bridgecrewio/checkov/25388a34231e09ac17b266ad9db0b4c0e806e956/docs/web/images/checkov-logo.svg @@ -123,7 +149,9 @@ linters: linter_rules_url: https://www.checkov.io/5.Policy%20Index/all.html linter_megalinter_ref_url: "no" cli_config_arg_name: "--config-file" - cli_lint_extra_args: + cli_sarif_args: ["--output", "sarif"] + sarif_default_output_file: ./results.sarif + cli_lint_extra_args_after: - "--file" examples: - "checkov --file myfile.tf" @@ -140,6 +168,9 @@ linters: # KICS - linter_name: kics name: TERRAFORM_KICS + descriptor_flavors: + - terraform + - security linter_url: https://www.kics.io linter_repo: https://github.com/checkmarx/kics linter_rules_url: https://docs.kics.io/latest/queries/all-queries/ diff --git a/megalinter/descriptors/tsx.megalinter-descriptor.yml b/megalinter/descriptors/tsx.megalinter-descriptor.yml index f4c2d061ce3..dac092af061 100644 --- a/megalinter/descriptors/tsx.megalinter-descriptor.yml +++ b/megalinter/descriptors/tsx.megalinter-descriptor.yml @@ -7,6 +7,7 @@ file_extensions: linters: # ESLINT - linter_name: eslint + can_output_sarif: true linter_text: | eslint requires a custom configuration file applicable to your project. @@ -31,6 +32,11 @@ linters: cli_lint_extra_args: - "--no-ignore" cli_lint_fix_arg_name: "--fix" + cli_sarif_args: + - --format + - "@microsoft/eslint-formatter-sarif" + - -o + - "{{SARIF_OUTPUT_FILE}}" cli_lint_errors_count: regex_sum cli_lint_errors_regex: "✖ ([0-9]+) problem" examples: @@ -45,11 +51,13 @@ linters: - eslint-config-prettier - eslint-plugin-jest - eslint-plugin-prettier + - eslint-plugin-react - babel-eslint - prettier - prettyjson - "@typescript-eslint/eslint-plugin" - "@typescript-eslint/parser" + - "@microsoft/eslint-formatter-sarif" ide: atom: - name: linter-eslint diff --git a/megalinter/descriptors/typescript.megalinter-descriptor.yml b/megalinter/descriptors/typescript.megalinter-descriptor.yml index cfeea9c7a95..c320dec9651 100644 --- a/megalinter/descriptors/typescript.megalinter-descriptor.yml +++ b/megalinter/descriptors/typescript.megalinter-descriptor.yml @@ -11,6 +11,7 @@ linters: # ESLINT - linter_name: eslint name: TYPESCRIPT_ES + can_output_sarif: true linter_text: | eslint requires a custom configuration file applicable to your project. @@ -36,6 +37,11 @@ linters: cli_lint_extra_args: - "--no-ignore" cli_lint_fix_arg_name: "--fix" + cli_sarif_args: + - --format + - "@microsoft/eslint-formatter-sarif" + - -o + - "{{SARIF_OUTPUT_FILE}}" cli_lint_errors_count: regex_sum cli_lint_errors_regex: "✖ ([0-9]+) problem" examples: @@ -58,6 +64,7 @@ linters: - prettyjson - "@typescript-eslint/eslint-plugin" - "@typescript-eslint/parser" + - "@microsoft/eslint-formatter-sarif" ide: atom: - name: linter-eslint diff --git a/megalinter/descriptors/vbdotnet.megalinter-descriptor.yml b/megalinter/descriptors/vbdotnet.megalinter-descriptor.yml index 688946bdf9a..1eb6eff0b59 100644 --- a/megalinter/descriptors/vbdotnet.megalinter-descriptor.yml +++ b/megalinter/descriptors/vbdotnet.megalinter-descriptor.yml @@ -5,6 +5,22 @@ descriptor_flavors: - dotnet file_extensions: - ".vb" +install: + apk: + - icu-libs + - libcurl + - libintl + - libssl1.1 + - libstdc++ + - lttng-ust-dev + - zlib + - zlib-dev + dockerfile: + - | + RUN wget --tries=5 -q -O dotnet-install.sh https://dot.net/v1/dotnet-install.sh \ + && chmod +x dotnet-install.sh \ + && ./dotnet-install.sh --install-dir /usr/share/dotnet -channel 5.0 -version latest + - ENV PATH="${PATH}:/root/.dotnet/tools:/usr/share/dotnet" linters: # DOTNET FORMAT - class: DotnetFormatLinter @@ -25,3 +41,6 @@ linters: examples: - "dotnet-format --folder --check --exclude / --include myfile.vb" - "dotnet-format --folder --exclude / --include myfile.vb" + install: + dockerfile: + - RUN /usr/share/dotnet/dotnet tool install -g dotnet-format diff --git a/megalinter/descriptors/yaml.megalinter-descriptor.yml b/megalinter/descriptors/yaml.megalinter-descriptor.yml index 0e2e04f5c45..09c4e4859b7 100644 --- a/megalinter/descriptors/yaml.megalinter-descriptor.yml +++ b/megalinter/descriptors/yaml.megalinter-descriptor.yml @@ -86,9 +86,11 @@ linters: # V8R - linter_name: v8r linter_url: https://github.com/chris48s/v8r + linter_repo: https://github.com/chris48s/v8r linter_text: v8r checks the validity of JSON/YAML files if they have a matching schema defined on [schemastore.org](https://www.schemastore.org/json/) linter_rules_url: https://www.schemastore.org/json/ linter_megalinter_ref_url: "no" + cli_lint_mode: list_of_files cli_lint_extra_args: - "--ignore-errors" cli_help_arg_name: "--help" @@ -99,7 +101,7 @@ linters: downgraded_version: true install: npm: - - v8r@0.6.1 + - v8r ide: eclipse: - name: native support diff --git a/megalinter/flavor_factory.py b/megalinter/flavor_factory.py index 2976adb2e21..5ac1ece1e95 100644 --- a/megalinter/flavor_factory.py +++ b/megalinter/flavor_factory.py @@ -44,7 +44,6 @@ def list_megalinter_flavors(): "ci_light": { "label": "Optimized for CI items (Dockerfile, Jenkinsfile, JSON/YAML schemas, XML)" }, - "dart": {"label": "Optimized for DART based projects"}, "documentation": {"label": "Optimized for documentation projects"}, "dotnet": {"label": "Optimized for C, C++, C# or VB based projects"}, "go": {"label": "Optimized for GO based projects"}, @@ -57,7 +56,7 @@ def list_megalinter_flavors(): "ruby": {"label": "Optimized for RUBY based projects"}, "rust": {"label": "Optimized for RUST based projects"}, "salesforce": {"label": "Optimized for Salesforce based projects"}, - "scala": {"label": "Optimized for SCALA based projects"}, + "security": {"label": "Optimized for security", "strict": True}, "swift": {"label": "Optimized for SWIFT based projects"}, "terraform": {"label": "Optimized for TERRAFORM based projects"}, } @@ -74,6 +73,11 @@ def check_active_linters_match_flavor(active_linters): if flavor == "all": logging.debug('MegaLinter flavor is "all", no need to check match with linters') return True + elif flavor == "none": + logging.debug( + "MegaLinter image contains a single linter, no need to check match with linters" + ) + return True all_flavors = get_all_flavors() flavor_linters = all_flavors[flavor]["linters"] missing_linters = [] diff --git a/megalinter/linter_factory.py b/megalinter/linter_factory.py index 8217104a0d8..af640d62fa2 100644 --- a/megalinter/linter_factory.py +++ b/megalinter/linter_factory.py @@ -47,6 +47,18 @@ def list_flavor_linters(linters_init_params=None, flavor_id="all"): return linters +# List unique linter +def list_linters_by_name(linters_init_params=None, linter_names=[]): + all_linters = list_all_linters(linters_init_params) + linters = [] + for linter in all_linters: + if linter.name in linter_names: + linters += [linter] + else: + del linter + return linters + + # List all descriptor files (one by language) def list_descriptor_files(): descriptors_dir = get_descriptor_dir() diff --git a/megalinter/linters/CSpellLinter.py b/megalinter/linters/CSpellLinter.py index 40b40e96794..3c8a1e05c65 100644 --- a/megalinter/linters/CSpellLinter.py +++ b/megalinter/linters/CSpellLinter.py @@ -9,6 +9,7 @@ import re from megalinter import Linter, utils +from megalinter.constants import DEFAULT_REPORT_FOLDER_NAME class CSpellLinter(Linter): @@ -37,7 +38,7 @@ def complete_text_reporter_report(self, reporter_self): "**/.git/**", ".vscode", "package-lock.json", - "report", + DEFAULT_REPORT_FOLDER_NAME, ], "words": whitelisted_words_clean, } diff --git a/megalinter/linters/DustilockLinter.py b/megalinter/linters/DustilockLinter.py new file mode 100644 index 00000000000..bcbe35ad477 --- /dev/null +++ b/megalinter/linters/DustilockLinter.py @@ -0,0 +1,105 @@ +#!/usr/bin/env python3 +""" +Use Dustilock to detect dependency injection hacks +https://github.com/Checkmarx/dustilock +""" + +import json +import logging + +from megalinter import Linter +from megalinter.constants import ( + DEFAULT_SARIF_SCHEMA_URI, + DEFAULT_SARIF_VERSION, + ML_DOC_URL, +) + + +class DustilockLinter(Linter): + + # Get dustilock text output and build SARIF output from it + def manage_sarif_output(self, return_stdout): + if self.can_output_sarif is True and self.output_sarif is True: + # Build results + logging.debug( + "[dustilock] Build SARIF result from output stdout:\n" + return_stdout + ) + results = [] + for line in return_stdout.splitlines(): + if line.startswith("error"): + error_text = line.partition(" - ")[2] + # npm error + if "npm" in error_text: + rule_id = "PACKAGE_JSON_ERROR" + rule_index = 0 + # python error + elif "python" in error_text: + rule_id = "PYTHON_REQUIREMENT_ERROR" + rule_index = 1 + # other error (we should not go there) + else: + rule_id = "OTHER_ERROR" + rule_index = 2 + file = error_text.partition(". ")[2] + result = { + "level": "error", + "message": {"text": error_text}, + "locations": [ + { + "physicalLocation": { + "artifactLocation": { + "uri": file, + "uriBaseId": "ROOTPATH", + } + } + } + ], + "ruleId": rule_id, + "ruleIndex": rule_index, + } + results += [result] + # Build final output + sarif_obj = { + "$schema": DEFAULT_SARIF_SCHEMA_URI, + "properties": { + "comment": "Generated by MegaLinter for dustilock", + "docUrl": ML_DOC_URL, + }, + "runs": [ + { + "tool": { + "driver": { + "informationUri": "https://github.com/Checkmarx/dustilock", + "name": "dustilock", + "rules": [ + { + "id": "PACKAGE_JSON_ERROR", + "name": "package_json_error", + "shortDescription": { + "text": "Dependency injection in package.json" + }, + }, + { + "id": "PYTHON_REQUIREMENT_ERROR", + "name": "python_requirement_error", + "shortDescription": { + "text": "Dependency injection in python requirements.txt" + }, + }, + { + "id": "OTHER_ERROR", + "name": "other_error", + "shortDescription": {"text": "Other error"}, + }, + ], + } + }, + "results": results, + } + ], + "version": DEFAULT_SARIF_VERSION, + } + # Write sarif output file + with open(self.sarif_output_file, "w", encoding="utf-8") as outfile: + json.dump(sarif_obj, outfile, indent=4, sort_keys=False) + outfile.write("\n") diff --git a/megalinter/linters/GitleaksLinter.py b/megalinter/linters/GitleaksLinter.py new file mode 100644 index 00000000000..31dd2d0a159 --- /dev/null +++ b/megalinter/linters/GitleaksLinter.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 +""" +Use GitLeaks to check for credentials in repository +""" + +from megalinter import Linter +from megalinter.utils import is_git_repo + + +class GitleaksLinter(Linter): + + # Manage presence of --no-git in command line + def build_lint_command(self, file=None): + cmd = super().build_lint_command(file) + # --no-git has been sent by user in REPOSITORY_GITLEAKS_ARGUMENTS + # make sure that it is only once in the arguments list + if "--no-git" in self.cli_lint_user_args: + cmd = list(dict.fromkeys(cmd)) + # --no-git has been sent by default from ML descriptor + # but as it is a git repo, remove all --no-git from arguments list + elif "--no-git" in cmd and is_git_repo(self.workspace): + cmd = list(filter(lambda a: a != "--no-git", cmd)) + return cmd diff --git a/megalinter/linters/GroovyNpmGroovyLintLinter.py b/megalinter/linters/GroovyNpmGroovyLintLinter.py index bf00a17dfb6..54051a8d645 100644 --- a/megalinter/linters/GroovyNpmGroovyLintLinter.py +++ b/megalinter/linters/GroovyNpmGroovyLintLinter.py @@ -28,4 +28,6 @@ def build_lint_command(self, file=None): cmd += ["--path ", dir_name, "--files ", f"{file_name}"] if self.config_file is not None: cmd += [self.cli_config_arg_name, self.config_file] + # Add sarif arguments if necessary + cmd += self.get_sarif_arguments() return cmd diff --git a/megalinter/linters/JavaPmdLinter.py b/megalinter/linters/JavaPmdLinter.py new file mode 100644 index 00000000000..69b308c96a4 --- /dev/null +++ b/megalinter/linters/JavaPmdLinter.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 +""" +Use PMD to lint java files +""" + +import os.path +import tempfile +import uuid + +from megalinter import Linter + + +class JavaPmdLinter(Linter): + + # Build the CLI command to call to lint a file + def build_lint_command(self, file=None): + # single file + if self.cli_lint_mode == "file": + file_args = ["-dir", file] + # lint the whole directory + elif self.cli_lint_mode == "project": + file_args = ["-dir", self.workspace] + # lint a list of files + elif self.cli_lint_mode == "list_of_files": + temp_list_of_files_for_pmd = ( + tempfile.gettempdir() + + os.path.sep + + str(uuid.uuid4()) + + "-pmd-files.txt" + ) + with open(temp_list_of_files_for_pmd, "w", encoding="utf-8") as f: + f.write("\n".join(self.files)) + file_args = ["-filelist", temp_list_of_files_for_pmd] + cmd = [self.cli_executable] + # Add other lint cli arguments if defined + cmd += self.cli_lint_extra_args + # Add user-defined extra arguments if defined + cmd += self.cli_lint_user_args + if self.config_file is not None: + cmd += [self.cli_config_arg_name, self.config_file] + # Add file arguments + cmd += file_args + return cmd diff --git a/megalinter/linters/RLinter.py b/megalinter/linters/RLinter.py index 001adfe2973..8bcaaa81cfa 100644 --- a/megalinter/linters/RLinter.py +++ b/megalinter/linters/RLinter.py @@ -19,8 +19,9 @@ def build_lint_command(self, file=None): copyfile(self.config_file, dir_name + os.path.sep + self.config_file_name) # Build command in R format r_commands = [ - f"errors <- lintr::lint('{file}');", - "print(errors);", + f"lints <- lintr::lint('{file}');", + "print(lints);", + "errors <- purrr::keep(lints, ~ .type == 'error');", "quit(save = 'no', status = if (length(errors) > 0) 1 else 0)", ] # Build shell command diff --git a/megalinter/linters/SemgrepLinter.py b/megalinter/linters/SemgrepLinter.py new file mode 100644 index 00000000000..0a748f4ed44 --- /dev/null +++ b/megalinter/linters/SemgrepLinter.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +""" +Use SemGrep to lint any type of file according to local config +""" + +import logging + +from megalinter import Linter, config + + +class SemgrepLinter(Linter): + + # Manage case when we want semgrep rulesets to be selected related to security + def build_lint_command(self, file=None): + cmd = super().build_lint_command(file) + replace_index = cmd.index(self.cli_config_default_value) + custom_rulesets = self.get_custom_rulesets() + if len(custom_rulesets) > 0 and replace_index > -1: + custom_rulesets_args = [] + for custom_ruleset in custom_rulesets: + custom_rulesets_args.append("--config") + custom_rulesets_args.append(custom_ruleset) + cmd = ( + cmd[: replace_index - 1] + + custom_rulesets_args + + cmd[replace_index + 1 :] # noqa: E203 + ) + logging.debug( + "[SemgrepLinter] Custom rulesets: " + ",".join(custom_rulesets) + ) + return cmd + + def get_custom_rulesets(self): + if config.exists("REPOSITORY_SEMGREP_RULESETS"): + # User defined rulesets + return config.get_list("REPOSITORY_SEMGREP_RULESETS") + elif ( + # security rulesets + self.master.megalinter_flavor in ["security", "none"] + or config.get("REPOSITORY_SEMGREP_RULESETS_TYPE", "") == "security" + ): + return [ + "p/docker-compose", + "p/expressjs", + "p/github-actions", + "p/headless-browser", + "p/jwt", + "p/kubernetes", + "p/nginx", + "p/nodejsscan", + "p/owasp-top-ten", + "p/phpcs-security-audit", + "p/react", + "p/security-audit", + "p/sql-injection", + "p/xss", + ] + return [] diff --git a/megalinter/linters/SyftLinter.py b/megalinter/linters/SyftLinter.py new file mode 100644 index 00000000000..166baf61389 --- /dev/null +++ b/megalinter/linters/SyftLinter.py @@ -0,0 +1,67 @@ +#!/usr/bin/env python3 +""" +Use Syft to generate SBOM (Software bill of materials) +""" + +import json +import logging +import os + +from megalinter import Linter +from megalinter.constants import ( + DEFAULT_SARIF_SCHEMA_URI, + DEFAULT_SARIF_VERSION, + ML_DOC_URL, +) + + +class SyftLinter(Linter): + + # Get syft json output and build SARIF output from it + def manage_sarif_output(self, _return_stdout): + if self.can_output_sarif is True and self.output_sarif is True: + json_output_file = f"{self.sarif_output_file}.syft.json" + if os.path.isfile(json_output_file): + with open(json_output_file, "r", encoding="utf-8") as json_file: + json_file_str = json_file.read() + if logging.getLogger().isEnabledFor(logging.DEBUG): + logging.debug("SYFT initial output file: " + json_file_str) + syft_result_sbom = json.loads(json_file_str) + sarif_obj = { + "$schema": DEFAULT_SARIF_SCHEMA_URI, + "properties": { + "comment": "Generated by MegaLinter for syft", + "docUrl": ML_DOC_URL, + }, + "runs": [ + { + "tool": { + "driver": { + "informationUri": "https://github.com/anchore/syft", + "name": "syft", + "rules": [ + { + "id": "SYFT_SBOM", + "name": "sbom_generation", + "shortDescription": { + "text": "Generate Software Bill Of Materials" + }, + }, + ], + } + }, + "results": [ + { + "level": "note", + "properties": {"sbom": syft_result_sbom}, + "message": {"text": "Generated SBOM"}, + "ruleId": "SYFT_SBOM", + } + ], + } + ], + "version": DEFAULT_SARIF_VERSION, + } + with open(self.sarif_output_file, "w", encoding="utf-8") as outfile: + json.dump(sarif_obj, outfile, indent=4, sort_keys=False) + outfile.write("\n") diff --git a/megalinter/megalinter_server-py-unused b/megalinter/megalinter_server-py-unused new file mode 100644 index 00000000000..213cd216fd6 --- /dev/null +++ b/megalinter/megalinter_server-py-unused @@ -0,0 +1,90 @@ +# !/usr/bin/env python3 +""" +Start MegaLinter server +""" +import json +import os +import subprocess +import time +from flask import Flask +from flask_restful import Resource, Api, reqparse, abort + +print("MegaLinter Server starting...") +app = Flask(__name__) +api = Api(app) + +subprocess_env_default = {**os.environ, "FORCE_COLOR": "0"} + +parser = reqparse.RequestParser() +parser.add_argument("workspace") +parser.add_argument("debug") + +running_processes = 0 +max_running_processes = 1 + + +class LintRequest(Resource): + def get(self): + global running_processes + return {"runningProcesses": running_processes} + + def post(self): + args = parser.parse_args() + print(f"Received request to lint workspace {args}") + global running_processes + running_processes += 1 + # Check max running processes has not been reached + if running_processes > max_running_processes: + running_processes -= 1 + abort(423, message="This server is already busy") + # Missing workspacec property + if "workspace" not in args: + running_processes -= 1 + abort(400, message="Missing workspace property") + workspace = args["workspace"] + sarif_file_name = ( + "megalinter-report-" + + os.environ.get("SINGLE_LINTER") + + time.strftime("%Y%m%d-%H%M%S") + + ".sarif" + ) + # Lint command + command = ["python", "-m", "megalinter.run"] + # Lint env variables + subprocess_env = { + **subprocess_env_default, + "DEFAULT_WORKSPACE": workspace, + # "REPORT_OUTPUT_FOLDER": "/tmp/megalinter-reports", not yet but soon + "SARIF_REPORTER_FILE_NAME": sarif_file_name, + } + if "debug" in args: + subprocess_env["LOG_LEVEL"] = "DEBUG" + process = subprocess.run( + command, + stdout=subprocess.PIPE, + stderr=subprocess.STDOUT, + env=subprocess_env, + ) + # Base result + return_code = process.returncode + sarif_result_file = workspace + "/megalinter-reports/" + sarif_file_name + result = { + "returnCode": return_code, + "sarifFile": sarif_result_file, + } + # Add stdout if debug mode + if "debug" in args: + result["stdout"] = str(process.stdout) + # Add SARIF in output if found + if os.path.isfile(sarif_result_file): + with open(sarif_result_file, "r", encoding="utf-8") as json_file: + sarif_json = json.load(json_file) + result["sarif"] = sarif_json + running_processes -= 1 + return result + + +api.add_resource(LintRequest, "/lint_request") + +if __name__ == "__main__": + app.run(port=80, host="0.0.0.0", debug=True) diff --git a/megalinter/reporters/ConsoleLinterReporter.py b/megalinter/reporters/ConsoleLinterReporter.py index b263a4ecdcc..1583a2633b3 100644 --- a/megalinter/reporters/ConsoleLinterReporter.py +++ b/megalinter/reporters/ConsoleLinterReporter.py @@ -15,7 +15,7 @@ class ConsoleLinterReporter(Reporter): name = "CONSOLE" scope = "linter" - print_all_files = True + print_all_files = False def __init__(self, params=None): # Activate console output by default @@ -23,8 +23,8 @@ def __init__(self, params=None): self.report_type = "simple" if config.get("OUTPUT_DETAIL", "") == "detailed": self.report_type = "detailed" - if config.get("PRINT_ALL_FILES", "") == "false": - self.print_all_files = False + if config.get("PRINT_ALL_FILES", "") == "true": + self.print_all_files = True super().__init__(params) def manage_activation(self): diff --git a/megalinter/reporters/ConsoleReporter.py b/megalinter/reporters/ConsoleReporter.py index b1f22a6ad9d..a7cc0c16748 100644 --- a/megalinter/reporters/ConsoleReporter.py +++ b/megalinter/reporters/ConsoleReporter.py @@ -9,7 +9,7 @@ import chalk as c import terminaltables from megalinter import Reporter, config -from megalinter.constants import ML_DOC_URL, ML_REPO, ML_REPO_URL +from megalinter.constants import DEFAULT_RELEASE, ML_DOC_URL, ML_REPO, ML_REPO_URL class ConsoleReporter(Reporter): @@ -129,7 +129,7 @@ def produce_report(self): f"[flavors] Use the following link to request the new flavor: {new_flavor_url}" ) else: - build_version = os.environ.get("BUILD_VERSION", "v5") + build_version = os.environ.get("BUILD_VERSION", DEFAULT_RELEASE) action_version = ( "v5" if "v5" in build_version diff --git a/megalinter/reporters/GithubStatusReporter.py b/megalinter/reporters/GithubStatusReporter.py index 0fdd941426f..5c071452371 100644 --- a/megalinter/reporters/GithubStatusReporter.py +++ b/megalinter/reporters/GithubStatusReporter.py @@ -18,15 +18,15 @@ class GithubStatusReporter(Reporter): def __init__(self, params=None): # Activate GitHub Status by default - self.is_active = True + self.is_active = False super().__init__(params) def manage_activation(self): # Disable status for each linter if MULTI_STATUS is 'false' - if config.exists("MULTI_STATUS") and config.get("MULTI_STATUS") == "false": - self.is_active = False - elif config.get("GITHUB_STATUS_REPORTER", "true") != "true": - self.is_active = False + if config.exists("MULTI_STATUS") and config.get("MULTI_STATUS") == "true": + self.is_active = True + elif config.get("GITHUB_STATUS_REPORTER", "false") != "false": + self.is_active = True def produce_report(self): if ( diff --git a/megalinter/reporters/SarifReporter.py b/megalinter/reporters/SarifReporter.py new file mode 100644 index 00000000000..15f82062f54 --- /dev/null +++ b/megalinter/reporters/SarifReporter.py @@ -0,0 +1,181 @@ +#!/usr/bin/env python3 +""" +Produce SARIF report +""" +import json +import logging +import os +import random +from json.decoder import JSONDecodeError + +from megalinter import Reporter, config +from megalinter.constants import ( + DEFAULT_SARIF_REPORT_FILE_NAME, + DEFAULT_SARIF_SCHEMA_URI, + DEFAULT_SARIF_VERSION, + ML_DOC_URL, +) + + +class SarifReporter(Reporter): + name = "SARIF" + scope = "mega-linter" + report_type = "simple" + + def __init__(self, params=None): + # Deactivate JSON output by default + self.is_active = False + self.processing_order = -9999 # Run first + super().__init__(params) + + def manage_activation(self): + if config.get("SARIF_REPORTER", "false") == "true": + self.is_active = True + + def produce_report(self): + sarif_obj = { + "$schema": DEFAULT_SARIF_SCHEMA_URI, + "version": DEFAULT_SARIF_VERSION, + "properties": { + "comment": "Generated by MegaLinter", + "docUrl": ML_DOC_URL, + "dockerImage": { + "buildDate": config.get("BUILD_DATE", ""), + "buildRevision": config.get("BUILD_REVISION", ""), + "buildVersion": config.get("BUILD_VERSION", ""), + "flavor": config.get("MEGALINTER_FLAVOR", "none"), + "singleLinter": config.get("SINGLE_LINTER", ""), + }, + }, + "runs": [], + } + # Check delete linter SARIF file if LOG_FILE=none + keep_sarif_logs = True + if config.get("LOG_FILE", "") == "none": + keep_sarif_logs = False + # Build unique SARIF file with all SARIF output files + for linter in self.master.linters: + if linter.sarif_output_file is not None and os.path.isfile( + linter.sarif_output_file + ): + # Read SARIF output file + load_ok = False + with open( + linter.sarif_output_file, "r", encoding="utf-8" + ) as linter_sarif_file: + # parse sarif file + try: + linter_sarif_obj = json.load(linter_sarif_file) + load_ok = True + except JSONDecodeError as e: + # JSON decoding error + logging.error( + f"[SARIF reporter] ERROR: Unable to decode {linter.name} " + f"SARIF file {linter.sarif_output_file}" + ) + logging.error(str(e)) + logging.debug( + f"SARIF File content:\n{linter_sarif_file.read()}" + ) + except Exception as e: # noqa: E722 + # Other error + logging.error( + f"[SARIF reporter] ERROR: Unknown error with {linter.name} " + f"SARIF file {linter.sarif_output_file}" + ) + logging.error(str(e)) + if load_ok is True: + # fix sarif file + linter_sarif_obj = self.fix_sarif(linter_sarif_obj) + # append to global megalinter sarif run + sarif_obj["runs"] += linter_sarif_obj["runs"] + # Delete linter SARIF file if LOG_FILE=none + if keep_sarif_logs is False and os.path.isfile( + linter.sarif_output_file + ): + os.remove(linter.sarif_output_file) + result_json = json.dumps(sarif_obj, sort_keys=True, indent=4) + # Write output file + sarif_file_name = f"{self.report_folder}{os.path.sep}" + config.get( + "SARIF_REPORTER_FILE_NAME", DEFAULT_SARIF_REPORT_FILE_NAME + ) + if os.path.isfile(sarif_file_name): + # Remove from previous run + os.remove(sarif_file_name) + with open(sarif_file_name, "w", encoding="utf-8") as sarif_file: + sarif_file.write(result_json) + logging.info( + f"[SARIF Reporter] Generated {self.name} report: {sarif_file_name}" + ) + + def filter_fields(self, obj, fields_to_keep): + for field in dir(obj): + if ( + not field.startswith("__") + and not callable(getattr(obj, field)) + and ( + (len(fields_to_keep) > 0 and field not in fields_to_keep) + or getattr(obj, field, None) is None + ) + ): + try: + delattr(obj, field) + except: # noqa: E722 + pass + return obj + + # Some SARIF linter output contain errors (like references to line 0) + # We must correct them so SARIF is valid + def fix_sarif(self, linter_sarif_obj): + # browse runs + if "runs" in linter_sarif_obj: + for id_run, run in enumerate(linter_sarif_obj["runs"]): + # fix duplicate rules property + if ( + "tool" in run + and "driver" in run["tool"] + and "rules" in run["tool"]["driver"] + ): + rules = run["tool"]["driver"]["rules"] + rules_updated = [] + for rule in rules: + # If duplicate id, update duplicate items ids with a random value + if "id" in rule and any( + "id" in rule_item and rule_item["id"] == rule["id"] + for rule_item in rules_updated + ): + rule["id"] = ( + rule["id"] + + "_DUPLICATE_" + + str(random.randint(1, 99999)) + ) + rules_updated += [rule] + run["tool"]["driver"]["rules"] = rules_updated + # fix results property + if "results" in run: + # browse run results + for id_result, result in enumerate(run["results"]): + if "locations" in result: + # browse result locations + for id_location, location in enumerate(result["locations"]): + if "physicalLocation" in location: + location[ + "physicalLocation" + ] = self.fix_sarif_physical_location( + location["physicalLocation"] + ) + result["locations"][id_location] = location + run["results"][id_result] = result + linter_sarif_obj["runs"][id_run] = run + return linter_sarif_obj + + # Replace startLine and endLine in region or contextRegion + def fix_sarif_physical_location(self, physical_location): + for location_key in physical_location.keys(): + location_item = physical_location[location_key] + if "startLine" in location_item and location_item["startLine"] == 0: + location_item["startLine"] = 1 + if "endLine" in location_item and location_item["endLine"] == 0: + location_item["endLine"] = 1 + physical_location[location_key] = location_item + return physical_location diff --git a/megalinter/setup.py b/megalinter/setup.py index 41ad5157a04..b9cfd00e918 100644 --- a/megalinter/setup.py +++ b/megalinter/setup.py @@ -11,26 +11,18 @@ packages=["megalinter", "megalinter.linters", "megalinter.reporters"], install_requires=[ "gitpython", - "jsonschema", "jsonpickle", "multiprocessing_logging", "pychalk", "pygithub", + "python-gitlab", "commentjson", "pytablewriter", - "pytest-cov", - "pytest-timeout", - "python-gitlab", "pyyaml", "requests", "terminaltables", - "webpreview", - "yq", - "importlib-metadata>=3.10", - "mkdocs-material", - "mdx_truly_sane_lists", - "beautifulsoup4", - "giturlparse", + "importlib-metadata>=3.10" + # "flask-restful" ], zip_safe=False, ) diff --git a/megalinter/tests/test_megalinter/LinterTestRoot.py b/megalinter/tests/test_megalinter/LinterTestRoot.py index bce8744e7f0..75cdc527bba 100644 --- a/megalinter/tests/test_megalinter/LinterTestRoot.py +++ b/megalinter/tests/test_megalinter/LinterTestRoot.py @@ -30,3 +30,11 @@ def test_get_linter_version(self): def test_get_linter_help(self): utilstest.linter_test_setup() utilstest.test_get_linter_help(self.get_linter_instance(), self) + + def test_report_tap(self): + utilstest.linter_test_setup({"report_type": "tap"}) + utilstest.test_linter_report_tap(self.get_linter_instance(), self) + + def test_report_sarif(self): + utilstest.linter_test_setup({"report_type": "SARIF"}) + utilstest.test_linter_report_sarif(self.get_linter_instance(), self) diff --git a/megalinter/tests/test_megalinter/filters_test.py b/megalinter/tests/test_megalinter/filters_test.py index f67a353cf30..4e82761b4e4 100644 --- a/megalinter/tests/test_megalinter/filters_test.py +++ b/megalinter/tests/test_megalinter/filters_test.py @@ -7,6 +7,7 @@ import unittest from megalinter import utils +from megalinter.constants import DEFAULT_DOCKER_WORKSPACE_DIR class utilsTest(unittest.TestCase): @@ -49,7 +50,7 @@ def test_file_is_generated_false_2(self): ) def test_filter_files_with_ignored_files(self): - basedir = "/tmp/lint/" + basedir = DEFAULT_DOCKER_WORKSPACE_DIR + "/" all_files = [ f"{basedir}src/foo.ext", f"{basedir}README.md", @@ -81,7 +82,7 @@ def test_filter_files_with_ignored_files(self): ) def test_filter_files_with_file_extensions(self): - basedir = "/tmp/lint/" + basedir = DEFAULT_DOCKER_WORKSPACE_DIR + "/" all_files = [ f"{basedir}src/foo.ext", f"{basedir}README.md", diff --git a/megalinter/tests/test_megalinter/helpers/utilstest.py b/megalinter/tests/test_megalinter/helpers/utilstest.py index 48b18803731..b88d00eca2e 100644 --- a/megalinter/tests/test_megalinter/helpers/utilstest.py +++ b/megalinter/tests/test_megalinter/helpers/utilstest.py @@ -14,10 +14,14 @@ from git import Repo from megalinter import Megalinter, config, utils +from megalinter.constants import ( + DEFAULT_DOCKER_WORKSPACE_DIR, + DEFAULT_REPORT_FOLDER_NAME, +) REPO_HOME = ( - "/tmp/lint" - if os.path.isdir("/tmp/lint") + DEFAULT_DOCKER_WORKSPACE_DIR + if os.path.isdir(DEFAULT_DOCKER_WORKSPACE_DIR) else os.path.dirname(os.path.abspath(__file__)) + os.path.sep + ".." @@ -33,6 +37,11 @@ # Define env variables before any test case def linter_test_setup(params=None): for key in [ + "APPLY_FIXES", + "ENABLE", + "ENABLE_LINTERS", + "DISABLE", + "DISABLE_LINTERS", "MEGALINTER_CONFIG", "EXTENDS", "FILTER_REGEX_INCLUDE", @@ -40,9 +49,14 @@ def linter_test_setup(params=None): "IGNORE_GITIGNORED_FILES", "IGNORE_GENERATED_FILES", "SHOW_ELAPSED_TIME", + "UPDATED_SOURCES_REPORTER", "MEGALINTER_FLAVOR", "FLAVOR_SUGGESTIONS", "DISABLE_ERRORS", + "SARIF_REPORTER", + "LOG_FILE", + "REPOSITORY_SEMGREP_RULESETS_TYPE", + "REPOSITORY_SEMGREP_RULESETS", ]: if key in os.environ: del os.environ[key] @@ -57,8 +71,8 @@ def linter_test_setup(params=None): ) # Root path of default rules root_dir = ( - "/tmp/lint" - if os.path.isdir("/tmp/lint") + DEFAULT_DOCKER_WORKSPACE_DIR + if os.path.isdir(DEFAULT_DOCKER_WORKSPACE_DIR) else os.path.relpath( os.path.relpath(os.path.dirname(os.path.abspath(__file__))) + "/../../../.." ) @@ -73,13 +87,19 @@ def linter_test_setup(params=None): ) config.init_config(workspace) # Ignore report folder - config.set_value("FILTER_REGEX_EXCLUDE", r"\/report\/") + config.set_value("FILTER_REGEX_EXCLUDE", r"\/megalinter-reports\/") # TAP Output deactivated by default config.set_value("OUTPUT_FORMAT", "text") config.set_value("OUTPUT_DETAIL", "detailed") config.set_value("PLUGINS", "") + config.set_value("GITHUB_STATUS_REPORTER", "false") config.set_value("IGNORE_GITIGNORED_FILES", "true") config.set_value("VALIDATE_ALL_CODEBASE", "true") + if params.get("additional_test_variables"): + for env_var_key, env_var_value in params.get( + "additional_test_variables" + ).items(): + config.set_value(env_var_key, env_var_value) # Root path of files to lint config.set_value( "DEFAULT_WORKSPACE", @@ -125,8 +145,11 @@ def call_mega_linter(env_vars): def test_linter_success(linter, test_self): - if linter.disabled is True or "all" in getattr( - linter, "descriptor_flavors_exclude", [] + if ( + linter.disabled is True + or "all" in getattr(linter, "descriptor_flavors_exclude", []) + # todo: remove when bug is fixed https://github.com/accurics/terrascan/issues/1036 + or linter.linter_name == "terrascan" ): raise unittest.SkipTest("Linter has been disabled") test_folder = linter.test_folder @@ -142,9 +165,11 @@ def test_linter_success(linter, test_self): "DEFAULT_WORKSPACE": workspace, "FILTER_REGEX_INCLUDE": r"(good)", "TEXT_REPORTER": "true", + "UPDATED_SOURCES_REPORTER": "false", "REPORT_OUTPUT_FOLDER": tmp_report_folder, "LOG_LEVEL": "DEBUG", "ENABLE_LINTERS": linter.name, + "PRINT_ALL_FILES": True, } if linter.lint_all_other_linters_files is not False: env_vars["ENABLE_LINTERS"] += ",JAVASCRIPT_ES" @@ -180,10 +205,12 @@ def test_linter_success(linter, test_self): def test_linter_failure(linter, test_self): - if linter.disabled is True or "all" in getattr( - linter, "descriptor_flavors_exclude", [] + if ( + (linter.disabled is True) + or (linter.linter_name in ["dustilock", "syft"]) # ugly + or ("all" in getattr(linter, "descriptor_flavors_exclude", [])) ): - raise unittest.SkipTest("Linter has been disabled") + raise unittest.SkipTest("Linter or test has been disabled") test_folder = linter.test_folder workspace = config.get("DEFAULT_WORKSPACE") + os.path.sep + test_folder if os.path.isdir(workspace + os.path.sep + "bad"): @@ -201,6 +228,7 @@ def test_linter_failure(linter, test_self): "FILTER_REGEX_INCLUDE": r"(bad)", "OUTPUT_FORMAT": "text", "OUTPUT_DETAIL": "detailed", + "UPDATED_SOURCES_REPORTER": "false", "REPORT_OUTPUT_FOLDER": tmp_report_folder, "LOG_LEVEL": "DEBUG", "ENABLE_LINTERS": linter.name, @@ -271,8 +299,8 @@ def manage_copy_sources(workspace): # Copy logs for documentation def copy_logs_for_doc(text_report_file, test_folder, report_file_name): updated_sources_dir = ( - f"{REPO_HOME}{os.path.sep}report{os.path.sep}updated_dev_sources{os.path.sep}" - f".automation{os.path.sep}test{os.path.sep}{test_folder}{os.path.sep}reports" + f"{REPO_HOME}{os.path.sep}{DEFAULT_REPORT_FOLDER_NAME}{os.path.sep}updated_dev_sources{os.path.sep}" + f".automation{os.path.sep}test{os.path.sep}{test_folder}{os.path.sep}{DEFAULT_REPORT_FOLDER_NAME}" ) target_file = f"{updated_sources_dir}{os.path.sep}{report_file_name}".replace( ".log", ".txt" @@ -303,8 +331,8 @@ def test_get_linter_version(linter, test_self): ) # Write in linter-versions.json root_dir = ( - "/tmp/lint" - if os.path.isdir("/tmp/lint") + DEFAULT_DOCKER_WORKSPACE_DIR + if os.path.isdir(DEFAULT_DOCKER_WORKSPACE_DIR) else os.path.relpath( os.path.relpath(os.path.dirname(os.path.abspath(__file__))) + "/../../../.." ) @@ -368,8 +396,8 @@ def test_get_linter_help(linter, test_self): ) # Write in linter-helps.json root_dir = ( - "/tmp/lint" - if os.path.isdir("/tmp/lint") + DEFAULT_DOCKER_WORKSPACE_DIR + if os.path.isdir(DEFAULT_DOCKER_WORKSPACE_DIR) else os.path.relpath( os.path.relpath(os.path.dirname(os.path.abspath(__file__))) + "/../../../.." ) @@ -418,13 +446,13 @@ def test_linter_report_tap(linter, test_self): f"expected-{linter.descriptor_id}.tap", ] + reports_with_extension for file_nm in list(dict.fromkeys(possible_reports)): - if os.path.isfile(f"{workspace}{os.path.sep}reports{os.path.sep}{file_nm}"): - expected_file_name = ( - f"{workspace}{os.path.sep}reports{os.path.sep}{file_nm}" - ) + if os.path.isfile( + f"{workspace}{os.path.sep}{DEFAULT_REPORT_FOLDER_NAME}{os.path.sep}{file_nm}" + ): + expected_file_name = f"{workspace}{os.path.sep}{DEFAULT_REPORT_FOLDER_NAME}{os.path.sep}{file_nm}" if expected_file_name == "": raise unittest.SkipTest( - f"Expected report not defined in {workspace}{os.path.sep}reports" + f"Expected report not defined in {workspace}{os.path.sep}{DEFAULT_REPORT_FOLDER_NAME}" ) # Call linter tmp_report_folder = tempfile.gettempdir() @@ -488,6 +516,53 @@ def test_linter_report_tap(linter, test_self): ) +# Test that the linter provides a SARIF output if it is configured like that +def test_linter_report_sarif(linter, test_self): + if ( + linter.disabled is True + or "all" in getattr(linter, "descriptor_flavors_exclude", []) + or linter.can_output_sarif is False + ): + raise unittest.SkipTest("SARIF is not configured for this linter") + test_folder = linter.test_folder + workspace = config.get("DEFAULT_WORKSPACE") + os.path.sep + test_folder + assert os.path.isdir(workspace), f"Test folder {workspace} is not existing" + # Call linter + tmp_report_folder = tempfile.gettempdir() + env_vars = { + "DEFAULT_WORKSPACE": workspace, + "SARIF_REPORTER": "true", + "REPORT_OUTPUT_FOLDER": tmp_report_folder, + "ENABLE_LINTERS": linter.name, + "LOG_LEVEL": "DEBUG", + "LOG_FILE": "megalinter.log", + } + env_vars.update(linter.test_variables) + mega_linter, _output = call_mega_linter(env_vars) + test_self.assertTrue( + len(mega_linter.linters) > 0, "Linters have been created and run" + ) + # Check SARIF file has been produced + tmp_sarif_file_name = ( + f"{tmp_report_folder}{os.path.sep}sarif{os.path.sep}{linter.name}.sarif" + ) + test_self.assertTrue( + os.path.isfile(tmp_sarif_file_name), + f"SARIF report not found {tmp_sarif_file_name}", + ) + # Check SARIF file contains appropriate format and runs + with open(tmp_sarif_file_name, "r", encoding="utf-8") as json_file: + sarif_content = json.load(json_file) + test_self.assertTrue( + "runs" in sarif_content, + f'Missing property "runs" in {tmp_sarif_file_name}', + ) + test_self.assertTrue( + len(sarif_content["runs"]) > 0, + f"Empty runs list in {tmp_sarif_file_name}", + ) + + def assert_is_skipped(skipped_item, output, test_self): test_self.assertRegex( output, diff --git a/megalinter/tests/test_megalinter/linters/dockerfile_dockerfilelint_test.py b/megalinter/tests/test_megalinter/linters/dockerfile_dockerfilelint_test.py deleted file mode 100644 index 04c1211ad12..00000000000 --- a/megalinter/tests/test_megalinter/linters/dockerfile_dockerfilelint_test.py +++ /dev/null @@ -1,14 +0,0 @@ -# !/usr/bin/env python3 -""" -Unit tests for DOCKERFILE linter dockerfilelint -This class has been automatically @generated by .automation/build.py, please do not update it manually -""" - -from unittest import TestCase - -from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot - - -class dockerfile_dockerfilelint_test(TestCase, LinterTestRoot): - descriptor_id = "DOCKERFILE" - linter_name = "dockerfilelint" diff --git a/megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~HEAD b/megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~HEAD new file mode 100644 index 00000000000..43b7e117118 --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~HEAD @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for KUBERNETES linter kubeconform +This class has been automatically @generated by .automation/build.py, please do not update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class kubernetes_kubeconform_test(TestCase, LinterTestRoot): + descriptor_id = "KUBERNETES" + linter_name = "kubeconform" diff --git a/megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~HEAD_0 b/megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~HEAD_0 new file mode 100644 index 00000000000..43b7e117118 --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~HEAD_0 @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for KUBERNETES linter kubeconform +This class has been automatically @generated by .automation/build.py, please do not update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class kubernetes_kubeconform_test(TestCase, LinterTestRoot): + descriptor_id = "KUBERNETES" + linter_name = "kubeconform" diff --git a/megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~main b/megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~main new file mode 100644 index 00000000000..43b7e117118 --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~main @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for KUBERNETES linter kubeconform +This class has been automatically @generated by .automation/build.py, please do not update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class kubernetes_kubeconform_test(TestCase, LinterTestRoot): + descriptor_id = "KUBERNETES" + linter_name = "kubeconform" diff --git a/megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~main_0 b/megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~main_0 new file mode 100644 index 00000000000..43b7e117118 --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/kubernetes_kubeconform_test.py~main_0 @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for KUBERNETES linter kubeconform +This class has been automatically @generated by .automation/build.py, please do not update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class kubernetes_kubeconform_test(TestCase, LinterTestRoot): + descriptor_id = "KUBERNETES" + linter_name = "kubeconform" diff --git a/megalinter/tests/test_megalinter/linters/php_php_test.py b/megalinter/tests/test_megalinter/linters/php_phplint_test.py~HEAD similarity index 70% rename from megalinter/tests/test_megalinter/linters/php_php_test.py rename to megalinter/tests/test_megalinter/linters/php_phplint_test.py~HEAD index 5ec40348953..c82a2ae011d 100644 --- a/megalinter/tests/test_megalinter/linters/php_php_test.py +++ b/megalinter/tests/test_megalinter/linters/php_phplint_test.py~HEAD @@ -1,6 +1,6 @@ # !/usr/bin/env python3 """ -Unit tests for PHP linter php +Unit tests for PHP linter phplint This class has been automatically @generated by .automation/build.py, please do not update it manually """ @@ -9,6 +9,6 @@ from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot -class php_php_test(TestCase, LinterTestRoot): +class php_phplint_test(TestCase, LinterTestRoot): descriptor_id = "PHP" - linter_name = "php" + linter_name = "phplint" diff --git a/megalinter/tests/test_megalinter/linters/rst_rstfmt_test.py b/megalinter/tests/test_megalinter/linters/php_phplint_test.py~main similarity index 63% rename from megalinter/tests/test_megalinter/linters/rst_rstfmt_test.py rename to megalinter/tests/test_megalinter/linters/php_phplint_test.py~main index f02231b0d1d..c82a2ae011d 100644 --- a/megalinter/tests/test_megalinter/linters/rst_rstfmt_test.py +++ b/megalinter/tests/test_megalinter/linters/php_phplint_test.py~main @@ -1,6 +1,6 @@ # !/usr/bin/env python3 """ -Unit tests for RST linter rstfmt +Unit tests for PHP linter phplint This class has been automatically @generated by .automation/build.py, please do not update it manually """ @@ -9,6 +9,6 @@ from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot -class rst_rstfmt_test(TestCase, LinterTestRoot): - descriptor_id = "RST" - linter_name = "rstfmt" +class php_phplint_test(TestCase, LinterTestRoot): + descriptor_id = "PHP" + linter_name = "phplint" diff --git a/megalinter/tests/test_megalinter/linters/repository_devskim_test.py b/megalinter/tests/test_megalinter/linters/repository_devskim_test.py new file mode 100644 index 00000000000..5a917033a7f --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/repository_devskim_test.py @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for REPOSITORY linter devskim +This class has been automatically @generated by .automation/build.py, please do not update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class repository_devskim_test(TestCase, LinterTestRoot): + descriptor_id = "REPOSITORY" + linter_name = "devskim" diff --git a/megalinter/tests/test_megalinter/linters/repository_dustilock_test.py b/megalinter/tests/test_megalinter/linters/repository_dustilock_test.py new file mode 100644 index 00000000000..a778f100442 --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/repository_dustilock_test.py @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for REPOSITORY linter dustilock +This class has been automatically @generated by .automation/build.py, please do not update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class repository_dustilock_test(TestCase, LinterTestRoot): + descriptor_id = "REPOSITORY" + linter_name = "dustilock" diff --git a/megalinter/tests/test_megalinter/linters/git_git_diff_test.py b/megalinter/tests/test_megalinter/linters/repository_git_diff_test.py similarity index 67% rename from megalinter/tests/test_megalinter/linters/git_git_diff_test.py rename to megalinter/tests/test_megalinter/linters/repository_git_diff_test.py index 57ddc443aea..885e7badb22 100644 --- a/megalinter/tests/test_megalinter/linters/git_git_diff_test.py +++ b/megalinter/tests/test_megalinter/linters/repository_git_diff_test.py @@ -1,6 +1,6 @@ # !/usr/bin/env python3 """ -Unit tests for GIT linter git_diff +Unit tests for REPOSITORY linter git_diff This class has been automatically @generated by .automation/build.py, please do not update it manually """ @@ -9,6 +9,6 @@ from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot -class git_git_diff_test(TestCase, LinterTestRoot): - descriptor_id = "GIT" +class repository_git_diff_test(TestCase, LinterTestRoot): + descriptor_id = "REPOSITORY" linter_name = "git_diff" diff --git a/megalinter/tests/test_megalinter/linters/repository_gitleaks_test.py b/megalinter/tests/test_megalinter/linters/repository_gitleaks_test.py new file mode 100644 index 00000000000..b9db5d1be45 --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/repository_gitleaks_test.py @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for REPOSITORY linter gitleaks +This class has been automatically @generated by .automation/build.py, please do not update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class repository_gitleaks_test(TestCase, LinterTestRoot): + descriptor_id = "REPOSITORY" + linter_name = "gitleaks" diff --git a/megalinter/tests/test_megalinter/linters/repository_goodcheck_test.py b/megalinter/tests/test_megalinter/linters/repository_goodcheck_test.py new file mode 100644 index 00000000000..400ba369605 --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/repository_goodcheck_test.py @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for REPOSITORY linter goodcheck +This class has been automatically @generated by .automation/build.py, please do not update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class repository_goodcheck_test(TestCase, LinterTestRoot): + descriptor_id = "REPOSITORY" + linter_name = "goodcheck" diff --git a/megalinter/tests/test_megalinter/linters/credentials_secretlint_test.py b/megalinter/tests/test_megalinter/linters/repository_secretlint_test.py similarity index 66% rename from megalinter/tests/test_megalinter/linters/credentials_secretlint_test.py rename to megalinter/tests/test_megalinter/linters/repository_secretlint_test.py index 07c770259a8..ade4c795051 100644 --- a/megalinter/tests/test_megalinter/linters/credentials_secretlint_test.py +++ b/megalinter/tests/test_megalinter/linters/repository_secretlint_test.py @@ -1,6 +1,6 @@ # !/usr/bin/env python3 """ -Unit tests for CREDENTIALS linter secretlint +Unit tests for REPOSITORY linter secretlint This class has been automatically @generated by .automation/build.py, please do not update it manually """ @@ -9,6 +9,6 @@ from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot -class credentials_secretlint_test(TestCase, LinterTestRoot): - descriptor_id = "CREDENTIALS" +class repository_secretlint_test(TestCase, LinterTestRoot): + descriptor_id = "REPOSITORY" linter_name = "secretlint" diff --git a/megalinter/tests/test_megalinter/linters/repository_semgrep_test.py b/megalinter/tests/test_megalinter/linters/repository_semgrep_test.py new file mode 100644 index 00000000000..a7b708a4bc4 --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/repository_semgrep_test.py @@ -0,0 +1,35 @@ +# !/usr/bin/env python3 +""" +Unit tests for REPOSITORY linter semgrep +This class has been automatically @generated by .automation/build.py, please do not update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.helpers import utilstest +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class repository_semgrep_test(TestCase, LinterTestRoot): + descriptor_id = "REPOSITORY" + linter_name = "semgrep" + + def test_security_flavor_success(self): + utilstest.linter_test_setup( + { + "additional_test_variables": { + "REPOSITORY_SEMGREP_RULESETS_TYPE": "security" + } + } + ) + utilstest.test_linter_success(self.get_linter_instance(), self) + + def test_security_flavor_failure(self): + utilstest.linter_test_setup( + { + "additional_test_variables": { + "REPOSITORY_SEMGREP_RULESETS_TYPE": "security" + } + } + ) + utilstest.test_linter_failure(self.get_linter_instance(), self) diff --git a/megalinter/tests/test_megalinter/linters/repository_syft_test.py b/megalinter/tests/test_megalinter/linters/repository_syft_test.py new file mode 100644 index 00000000000..bee7fa4243b --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/repository_syft_test.py @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for REPOSITORY linter syft +This class has been automatically @generated by .automation/build.py, please do not update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class repository_syft_test(TestCase, LinterTestRoot): + descriptor_id = "REPOSITORY" + linter_name = "syft" diff --git a/megalinter/tests/test_megalinter/linters/repository_trivy_test.py b/megalinter/tests/test_megalinter/linters/repository_trivy_test.py new file mode 100644 index 00000000000..b9051d5eaaa --- /dev/null +++ b/megalinter/tests/test_megalinter/linters/repository_trivy_test.py @@ -0,0 +1,14 @@ +# !/usr/bin/env python3 +""" +Unit tests for REPOSITORY linter trivy +This class has been automatically @generated by .automation/build.py, please do not update it manually +""" + +from unittest import TestCase + +from megalinter.tests.test_megalinter.LinterTestRoot import LinterTestRoot + + +class repository_trivy_test(TestCase, LinterTestRoot): + descriptor_id = "REPOSITORY" + linter_name = "trivy" diff --git a/megalinter/tests/test_megalinter/mega_linter_1_test.py b/megalinter/tests/test_megalinter/mega_linter_1_test.py index 451eb75b95c..b260262469a 100644 --- a/megalinter/tests/test_megalinter/mega_linter_1_test.py +++ b/megalinter/tests/test_megalinter/mega_linter_1_test.py @@ -7,7 +7,7 @@ import unittest import megalinter -from megalinter.constants import ML_REPO +from megalinter.constants import DEFAULT_DOCKER_WORKSPACE_DIR, ML_REPO from megalinter.tests.test_megalinter.helpers import utilstest @@ -105,8 +105,8 @@ def test_validate_all_code_base_false(self): megalinter.config.set_value( "GITHUB_WORKSPACE", ( - "/tmp/lint" - if os.path.isdir("/tmp/lint") + DEFAULT_DOCKER_WORKSPACE_DIR + if os.path.isdir(DEFAULT_DOCKER_WORKSPACE_DIR) else os.path.relpath( os.path.relpath(os.path.dirname(os.path.abspath(__file__))) + "/../../.." @@ -335,32 +335,6 @@ def test_override_cli_lint_mode(self): "YAML_YAMLLINT should have been processed with cli_lint_mode = file", ) - def test_override_cli_executable(self): - mega_linter, output = utilstest.call_mega_linter( - { - "ENABLE": "PHP", - "PHP_BUILTIN_CLI_EXECUTABLE": "/usr/bin/php8", - } - ) - self.assertTrue( - len(mega_linter.linters) > 0, "Linters have been created and run" - ) - self.assertTrue( - len( - list( - filter( - lambda x: ( - x.name == "PHP_BUILTIN" - and x.cli_executable == "/usr/bin/php8" - ), - mega_linter.linters, - ) - ) - ) - == 1, - "PHP_BUILTIN should have been processed with cli_executable = /usr/bin/php8", - ) - def test_print_all_files_false_and_no_flavor_suggestion(self): mega_linter, output = utilstest.call_mega_linter( { diff --git a/megalinter/tests/test_megalinter/mega_linter_2_fixes_test.py b/megalinter/tests/test_megalinter/mega_linter_2_fixes_test.py index ba51dd33407..c29e76ab203 100644 --- a/megalinter/tests/test_megalinter/mega_linter_2_fixes_test.py +++ b/megalinter/tests/test_megalinter/mega_linter_2_fixes_test.py @@ -10,7 +10,7 @@ from megalinter.tests.test_megalinter.helpers import utilstest -class mega_linter_2_fixes(unittest.TestCase): +class mega_linter_2_fixes_test(unittest.TestCase): def setUp(self): utilstest.linter_test_setup( { @@ -24,7 +24,8 @@ def test_1_apply_fixes_on_one_linter(self): "APPLY_FIXES": "JAVASCRIPT_STANDARD", "LOG_LEVEL": "DEBUG", "MULTI_STATUS": "false", - "DISABLE_LINTERS": "TERRAFORM_KICS", + "DISABLE_LINTERS": "TERRAFORM_KICS,REPOSITORY_GITLEAKS,REPOSITORY_TRIVY," + "JSON_V8R,YAML_V8R,MARKDOWN_MARKDOWN_LINK_CHECK,TERRAFORM_CHECKOV", } ) self.assertTrue( @@ -41,7 +42,8 @@ def test_2_apply_fixes_on_all_linters(self): "APPLY_FIXES": "all", "LOG_LEVEL": "DEBUG", "MULTI_STATUS": "false", - "DISABLE_LINTERS": "TERRAFORM_KICS", + "DISABLE_LINTERS": "TERRAFORM_KICS,REPOSITORY_GITLEAKS,REPOSITORY_TRIVY," + "JSON_V8R,YAML_V8R,MARKDOWN_MARKDOWN_LINK_CHECK,TERRAFORM_CHECKOV", } ) self.assertTrue( @@ -76,7 +78,7 @@ def test_2_apply_fixes_on_all_linters(self): # file_name = ( # updated_sources_dir # + os.path.sep - # + fixable_file.replace('/tmp/lint', "") + # + fixable_file.replace(DEFAULT_DOCKER_WORKSPACE_DIR, "") # ) # self.assertTrue( # os.path.isfile(file_name), diff --git a/megalinter/tests/test_megalinter/mega_linter_3_sarif_test.py b/megalinter/tests/test_megalinter/mega_linter_3_sarif_test.py new file mode 100644 index 00000000000..3d576c3029b --- /dev/null +++ b/megalinter/tests/test_megalinter/mega_linter_3_sarif_test.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python3 +""" +Unit tests for Megalinter class + +""" +import glob +import os +import tempfile +import unittest +import uuid + +from megalinter import Linter, MegaLinter +from megalinter.constants import DEFAULT_SARIF_REPORT_FILE_NAME +from megalinter.reporters.SarifReporter import SarifReporter +from megalinter.tests.test_megalinter.helpers import utilstest + +root = ( + os.path.dirname(os.path.abspath(__file__)) + + os.path.sep + + ".." + + os.path.sep + + ".." + + os.path.sep + + ".." +) + + +class mega_linter_3_sarif_test(unittest.TestCase): + def setUp(self): + utilstest.linter_test_setup( + { + "sub_lint_root": f"{os.path.sep}.automation{os.path.sep}test{os.path.sep}sample_project_sarif" + } + ) + + def test_sarif_output(self): + mega_linter, output = utilstest.call_mega_linter( + { + "APPLY_FIXES": "false", + "LOG_LEVEL": "DEBUG", + "MULTI_STATUS": "false", + "ENABLE_LINTERS": "JAVASCRIPT_ES,REPOSITORY_TRIVY,REPOSITORY_GITLEAKS,PYTHON_BANDIT,TERRAFORM_KICS", + "SARIF_REPORTER": "true", + } + ) + self.assertTrue( + len(mega_linter.linters) > 0, "Linters have been created and run" + ) + expected_output_file = ( + mega_linter.report_folder + os.path.sep + DEFAULT_SARIF_REPORT_FILE_NAME + ) + self.assertTrue( + os.path.isfile(expected_output_file), + "Output aggregated SARIF file " + expected_output_file + " should exist", + ) + + def test_sarif_fix(self): + # Create megalinter + mega_linter = MegaLinter.Megalinter() + # Create sample linters + sarif_dir = ( + root + + f"{os.path.sep}.automation{os.path.sep}test{os.path.sep}sarif_reports" + ) + sarif_dir_absolute = os.path.realpath(sarif_dir) + for sarif_file in glob.glob(f"{sarif_dir_absolute}{os.path.sep}*.sarif"): + # Create linter + linter = Linter(None, {}) + linter.name = "SAMPLE_" + os.path.basename(sarif_file) + linter.can_output_sarif = True + linter.sarif_output_file = sarif_file + mega_linter.linters += [linter] + + # Create reporter + tmp_report_folder = tempfile.gettempdir() + os.path.sep + str(uuid.uuid4()) + os.makedirs(tmp_report_folder) + reporter = SarifReporter( + {"master": mega_linter, "report_folder": tmp_report_folder} + ) + # Produce report + reporter.produce_report() + expected_output_file = ( + tmp_report_folder + os.path.sep + DEFAULT_SARIF_REPORT_FILE_NAME + ) + self.assertTrue( + os.path.isfile(expected_output_file), + "Output aggregated SARIF file " + expected_output_file + " should exist", + ) diff --git a/megalinter/utils.py b/megalinter/utils.py index b6745ca6da1..f37c785c070 100644 --- a/megalinter/utils.py +++ b/megalinter/utils.py @@ -9,10 +9,11 @@ import git from megalinter import config +from megalinter.constants import DEFAULT_DOCKER_WORKSPACE_DIR REPO_HOME_DEFAULT = ( - "/tmp/lint" - if os.path.isdir("/tmp/lint") + DEFAULT_DOCKER_WORKSPACE_DIR + if os.path.isdir(DEFAULT_DOCKER_WORKSPACE_DIR) else os.environ.get("DEFAULT_WORKSPACE") if os.path.isdir(os.environ.get("DEFAULT_WORKSPACE", "null")) else os.path.dirname(os.path.abspath(__file__)) + os.path.sep + ".." @@ -21,7 +22,7 @@ ANSI_ESCAPE_REGEX = re.compile(r"(\x9B|\x1B\[)[0-?]*[ -\/]*[@-~]") LIST_OF_REPLACEMENTS = [ # MegaLinter image - ["/tmp/lint/", ""], + [f"{DEFAULT_DOCKER_WORKSPACE_DIR}/", ""], ["tmp/lint/", ""], # GitHub Actions ["/github/workspace/", ""], @@ -230,6 +231,14 @@ def list_updated_files(repo_home): return changed_files +def is_git_repo(path): + try: + _ = git.Repo(path).git_dir + return True + except git.InvalidGitRepositoryError: + return False + + def check_updated_file(file, repo_home, changed_files=None): if changed_files is None: changed_files = list_updated_files(repo_home) @@ -252,3 +261,28 @@ def format_bullet_list(files): prefix = list_separator if any(files) is True else "" file_list = list_separator.join(files) if len(files) > 0 else "" return "{}{}".format(prefix, file_list) + + +def find_json_in_stdout(stdout: str): + # Whole stdout is json + if stdout.startswith("{"): + return truncate_json_from_line(stdout) + # Try to find a json line within stdout + found_json = "" + stdout_lines = stdout.splitlines() + stdout_lines.reverse() # start from last lines + for line in stdout_lines: + if line.startswith("{"): + json_only = truncate_json_from_line(line) + if json_only != "": + found_json = json_only + break + return found_json + + +def truncate_json_from_line(line: str): + start_pos = line.find("{") + end_pos = line.rfind("}") + if start_pos > -1 and end_pos > -1: + return line[start_pos : end_pos + 1] # noqa: E203 + return "" diff --git a/mkdocs.yml b/mkdocs.yml index 8cb050deaeb..db8b462fb1e 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,11 +1,11 @@ --- site_name: MegaLinter by OX Security -site_url: https://megalinter.github.io -repo_url: https://github.com/megalinter/megalinter +site_url: https://oxsecurity.github.io/megalinter +repo_url: https://github.com/oxsecurity/megalinter edit_uri: tree/main/docs site_author: Nicolas Vuillamy # site_description-start -site_description: MegaLinter is an Open-Source tool for CI/CD workflows that analyzes the consistency of your code, IAC, configuration, and scripts in your repository sources, to ensure all your projects sources are clean and formatted whatever IDE/toolbox is used by their developers, powered by OX security.Supporting 49 languages, 22 formats, 21 tooling formats and ready to use out of the box, as a GitHub action or any CI system highly configurable and free for all uses. +site_description: MegaLinter is an Open-Source tool for CI/CD workflows that analyzes the consistency of your code, IAC, configuration, and scripts in your repository sources, to ensure all your projects sources are clean and formatted whatever IDE/toolbox is used by their developers, powered by OX security.Supporting 48 languages, 21 formats, 20 tooling formats and ready to use out of the box, as a GitHub action or any CI system highly configurable and free for all uses. # site_description-end copyright: Copyright © 2022 OX Security & Nicolas Vuillamy theme: @@ -44,12 +44,12 @@ extra: - icon: fontawesome/brands/linkedin link: https://www.linkedin.com/company/ox-security/ - icon: fontawesome/regular/circle-question - link: https://github.com/megalinter/megalinter/issues + link: https://github.com/oxsecurity/megalinter/issues title: Need help ? Post an issue :) - icon: fontawesome/brands/github - link: https://github.com/megalinter/megalinter + link: https://github.com/oxsecurity/megalinter - icon: fontawesome/brands/docker - link: https://hub.docker.com/r/megalinter/megalinter + link: https://hub.docker.com/r/oxsecurity/megalinter - icon: fontawesome/brands/twitter link: https://twitter.com/NicolasVuillamy generator: false @@ -115,7 +115,6 @@ nav: - "perlcritic": "descriptors/perl_perlcritic.md" - "PHP": - "All PHP linters": "descriptors/php.md" - - "php": "descriptors/php_php.md" - "phpcs": "descriptors/php_phpcs.md" - "phpstan": "descriptors/php_phpstan.md" - "psalm": "descriptors/php_psalm.md" @@ -209,7 +208,6 @@ nav: - "All RST linters": "descriptors/rst.md" - "rst-lint": "descriptors/rst_rst_lint.md" - "rstcheck": "descriptors/rst_rstcheck.md" - - "rstfmt": "descriptors/rst_rstfmt.md" - "XML": - "All XML linters": "descriptors/xml.md" - "xmllint": "descriptors/xml_xmllint.md" @@ -236,7 +234,6 @@ nav: - "cfn-lint": "descriptors/cloudformation_cfn_lint.md" - "DOCKERFILE": - "All DOCKERFILE linters": "descriptors/dockerfile.md" - - "dockerfilelint": "descriptors/dockerfile_dockerfilelint.md" - "hadolint": "descriptors/dockerfile_hadolint.md" - "EDITORCONFIG": - "All EDITORCONFIG linters": "descriptors/editorconfig.md" @@ -276,12 +273,17 @@ nav: - "COPYPASTE": - "All COPYPASTE linters": "descriptors/copypaste.md" - "jscpd": "descriptors/copypaste_jscpd.md" - - "CREDENTIALS": - - "All CREDENTIALS linters": "descriptors/credentials.md" - - "secretlint": "descriptors/credentials_secretlint.md" - - "GIT": - - "All GIT linters": "descriptors/git.md" - - "git_diff": "descriptors/git_git_diff.md" + - "REPOSITORY": + - "All REPOSITORY linters": "descriptors/repository.md" + - "devskim": "descriptors/repository_devskim.md" + - "dustilock": "descriptors/repository_dustilock.md" + - "git_diff": "descriptors/repository_git_diff.md" + - "gitleaks": "descriptors/repository_gitleaks.md" + - "goodcheck": "descriptors/repository_goodcheck.md" + - "secretlint": "descriptors/repository_secretlint.md" + - "semgrep": "descriptors/repository_semgrep.md" + - "syft": "descriptors/repository_syft.md" + - "trivy": "descriptors/repository_trivy.md" - "SPELL": - "All SPELL linters": "descriptors/spell.md" - "misspell": "descriptors/spell_misspell.md" @@ -293,6 +295,7 @@ nav: - "GitHub Pull Request comments": "reporters/GitHubCommentReporter.md" - "Gitlab Merge Request comments": "reporters/GitlabCommentReporter.md" - "GitHub Status": "reporters/GitHubStatusReporter.md" + - "SARIF Reporter": "reporters/SarifReporter.md" - "Updated sources": "reporters/UpdatedSourcesReporter.md" - "E-mail": "reporters/EmailReporter.md" - "File.io": "reporters/FileIoReporter.md" @@ -304,7 +307,6 @@ nav: - "All flavors": "flavors.md" # flavors-start - "ci_light": "flavors/ci_light.md" - - "dart": "flavors/dart.md" - "documentation": "flavors/documentation.md" - "dotnet": "flavors/dotnet.md" - "go": "flavors/go.md" @@ -315,7 +317,7 @@ nav: - "ruby": "flavors/ruby.md" - "rust": "flavors/rust.md" - "salesforce": "flavors/salesforce.md" - - "scala": "flavors/scala.md" + - "security": "flavors/security.md" - "swift": "flavors/swift.md" - "terraform": "flavors/terraform.md" # flavors-end @@ -327,6 +329,7 @@ nav: - "Plugins": "plugins.md" - "Articles": "articles.md" - "Special thanks": "special-thanks.md" + - "They use MegaLinter": "all_users.md" - "Sponsoring": 'sponsor.md' - "MegaLinter vs Super-Linter": "mega-linter-vs-super-linter.md" - "Contribute": diff --git a/requirements.dev.txt b/requirements.dev.txt index 35a78885d16..8318ba89aac 100644 --- a/requirements.dev.txt +++ b/requirements.dev.txt @@ -9,6 +9,7 @@ commentjson pytablewriter pytest-cov pytest-timeout +pytest-xdist python-gitlab pyyaml requests @@ -21,3 +22,4 @@ mdx_truly_sane_lists beautifulsoup4 giturlparse json-schema-for-humans +# flask-restful diff --git a/sh/megalinter_exec b/sh/megalinter_exec new file mode 100644 index 00000000000..eb3c01325c9 --- /dev/null +++ b/sh/megalinter_exec @@ -0,0 +1,124 @@ +#!/usr/bin/env bash + +############################################################################################### +#Script Name : megalinter_exec +#Description : Run the Megalinter scanner, for use when Megalinter is running in SSH mode +#Owner : ox.security +#Email Contact : support@ox.security +#Email Author : inbar@ox.security +############################################################################################### + +usage() +{ + echo -e "" + echo -e "execute megalinter" + echo -e "" + echo -e "Usage" + echo -e "\tmegalinter_exec [options] --input --output [--capture-std ]" + echo -e "" + echo -e "Arguments" + echo -e "\t-h|-?|--help show usage (this message)" + echo -e "\t--input specify the directory to scan" + echo -e "\t--output specify the path for the report file to be created at" + echo -e "\t--capture-std specify a path to write all captured STDOUT and STDERR to" + echo -e "" + echo -e "Options" + echo -e "\t-v|--verbose verbose output (useful for debugging)" + echo -e "" + echo -e "Examples" + echo -e "\t1. scan megalinter repo" + echo -e "\t\tmegalinter_exec --input /megalinter --output /tmp/output.sarif" + echo -e "\t2. scan megalinter repo with capture std" + echo -e "\t\tmegalinter_exec --input /megalinter --output /tmp/output.sarif --capture-std /tmp/out.log" + echo -e "" +} + +INPUT="" +OUTPUT="" +CAPTURE_STD="" +VERBOSE=0 +ML_ENV_VARS=/var/ml-env-vars +ML_ENV_FIX_COMMAND="set -a; . ${ML_ENV_VARS}; set +a" + +# parse command line arguments +while :; do + case $1 in + -h|-\?|--help) + usage + exit + ;; + # options + -v|--verbose) + VERBOSE=1 + ;; + # arguments + --input) + if [ -n "$2" ]; then + INPUT=$2 + shift + else + printf 'ERROR: "--input" requires a non-empty option argument.\n' >&2 + exit 1 + fi + ;; + --output) + if [ -n "$2" ]; then + OUTPUT=$2 + shift + else + printf 'ERROR: "--output" requires a non-empty option argument.\n' >&2 + exit 1 + fi + ;; + --capture-std) + if [ -n "$2" ]; then + CAPTURE_STD=$2 + shift + else + printf 'ERROR: "--capture-std" requires a non-empty option argument.\n' >&2 + exit 1 + fi + ;; + --) # End of all options. + shift + break + ;; + -?*) + printf 'WARN: Unknown option (ignored): %s\n' "$1" >&2 + ;; + *) # Default case: If no more options then break out of the loop. + break + esac + shift +done + +## prepare Megalinter scan command +if [ "${INPUT}" == "" ]; then + printf 'ERROR: No input given (--input)\n' >&2 + exit 1 +fi + +if [ "${OUTPUT}" == "" ]; then + printf 'ERROR: No output given (--output)\n' >&2 + exit 1 +fi + +echo "Setting git safe.directory to /tmp/lint and ${INPUT} ..." +git config --global --add safe.directory /tmp/lint +git config --global --add safe.directory "${INPUT}" + +MEGALINTER_SCAN_COMMAND="DEFAULT_WORKSPACE=${INPUT} python -m megalinter.run --output ${OUTPUT}" +if [ "${CAPTURE_STD}" != "" ]; then + MEGALINTER_SCAN_COMMAND="${MEGALINTER_SCAN_COMMAND} &> ${CAPTURE_STD}" +fi +## prepare bash command +if [ "${VERBOSE}" == "1" ]; then + echo "The Megalinter Scan command is: ${MEGALINTER_SCAN_COMMAND}" +fi +BASH_COMMAND_TO_EXECUTE="${ML_ENV_FIX_COMMAND}; ${MEGALINTER_SCAN_COMMAND}" +if [ "${VERBOSE}" == "1" ]; then + echo "About to run the following scan command (also setting -x): ${BASH_COMMAND_TO_EXECUTE}" + set -x +fi +## run bash command +bash --login -c "${BASH_COMMAND_TO_EXECUTE}" \ No newline at end of file diff --git a/sh/motd b/sh/motd new file mode 100644 index 00000000000..21efe0549b2 --- /dev/null +++ b/sh/motd @@ -0,0 +1,25 @@ +#################################### +Welcome to MegaLinter SSH server ! +#################################### +(2021) Nicolas Vuillamy + +You can run the following commands: + +- bash : get within bash context + +- load the environment variables configured during Dockerfile creation + + - set -a; . /var/ml-env-vars; set +a + +- Run MegaLinter + + - python -m megalinter.run --input demo-megalinter-security-flavor --output /tmp/report" (requires a /tmp/report mounted volume) + - python -m megalinter.run --input demo-megalinter-security-flavor --output /tmp/report/myfile.sarif" (requires a /tmp/report mounted volume) + - python -m megalinter.run --input demo-megalinter-security-flavor --output myfile.sarif" (Will generate myfile.sarif in repo megalinter-reports folder) + - DEFAULT_WORKSPACE=/tmp/lint/demo-megalinter-security-flavor python -m megalinter.run" (working !) + +- alternatively, you could perform the operation in one command using megalinter_exec alias (also works through the SSH command) + + - megalinter_exec --input myrepository --output myoutputfile.sarif (from inside the container in an interactive bash shell) + - ssh@megalinter-container "/bin/bash --login -c 'megalinter_exec --input myrepository --output myoutputfile.sarif'" (from outside the container, using ssh to run a command in the container) + diff --git a/trivy-secret.yaml b/trivy-secret.yaml new file mode 100644 index 00000000000..9301d6aff32 --- /dev/null +++ b/trivy-secret.yaml @@ -0,0 +1,2 @@ +disable-rules: + - alibaba-access-key-id